text:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ChangeListManager">
    <list default="true" id="9c21da58-0921-4f3c-9ae6-f0ca52a10178" name="Default" comment="">
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/.rakeTasks" afterPath="$PROJECT_DIR$/.idea/.rakeTasks" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/fiveinarow.iml" afterPath="$PROJECT_DIR$/.idea/fiveinarow.iml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/fiveinarow.rb" afterPath="$PROJECT_DIR$/lib/fiveinarow.rb" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/fiveinarow/ai_player.rb" afterPath="$PROJECT_DIR$/lib/fiveinarow/ai_player.rb" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/fiveinarow/board.rb" afterPath="$PROJECT_DIR$/lib/fiveinarow/board.rb" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/fiveinarow/cell.rb" afterPath="$PROJECT_DIR$/lib/fiveinarow/cell.rb" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/test/spec/cell_spec.rb" afterPath="$PROJECT_DIR$/test/spec/cell_spec.rb" />
    </list>
    <ignored path="fiveinarow.iws" />
    <ignored path=".idea/workspace.xml" />
    <ignored path=".idea/dataSources.local.xml" />
    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
    <option name="TRACKING_ENABLED" value="true" />
    <option name="SHOW_DIALOG" value="false" />
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
    <option name="LAST_RESOLUTION" value="IGNORE" />
  </component>
  <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
  <component name="CoverageDataManager">
    <SUITE FILE_PATH="coverage/fiveinarow@Run_spec__cell_spec___fiveinarow.coverage" NAME="Run spec 'cell_spec': fiveinarow Coverage Results" MODIFIED="1453815878718" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/test" MODULE_NAME="fiveinarow" />
    <SUITE FILE_PATH="coverage/fiveinarow@All_tests_in_test__fiveinarow.coverage" NAME="All tests in test: fiveinarow Coverage Results" MODIFIED="1453809149870" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/test" MODULE_NAME="fiveinarow" />
    <SUITE FILE_PATH="coverage/fiveinarow@fiveinarow__1_.coverage" NAME="fiveinarow (1) Coverage Results" MODIFIED="1453808008907" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/bin" MODULE_NAME="fiveinarow" />
    <SUITE FILE_PATH="coverage/fiveinarow@fiveinarow.coverage" NAME="fiveinarow Coverage Results" MODIFIED="1453812527043" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/lib" MODULE_NAME="fiveinarow" />
    <SUITE FILE_PATH="coverage/fiveinarow@All_specs_in_test__fiveinarow.coverage" NAME="All specs in test: fiveinarow Coverage Results" MODIFIED="1453808315537" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/test" MODULE_NAME="fiveinarow" />
    <SUITE FILE_PATH="coverage/fiveinarow@All_tests_in_spec__fiveinarow.coverage" NAME="All tests in spec: fiveinarow Coverage Results" MODIFIED="1453645079622" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/test/spec" MODULE_NAME="fiveinarow" />
    <SUITE FILE_PATH="coverage/fiveinarow@spec_helper.coverage" NAME="spec_helper Coverage Results" MODIFIED="1453645109854" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/test/spec" MODULE_NAME="fiveinarow" />
  </component>
  <component name="CreatePatchCommitExecutor">
    <option name="PATCH_PATH" value="" />
  </component>
  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
  <component name="FavoritesManager">
    <favorites_list name="fiveinarow" />
  </component>
  <component name="FileEditorManager">
    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
      <file leaf-file-name="fiveinarow.rb" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/lib/fiveinarow.rb">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="-6.428571">
              <caret line="12" column="27" selection-start-line="12" selection-start-column="27" selection-end-line="12" selection-end-column="27" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="ai_player.rb" pinned="false" current-in-tab="true">
        <entry file="file://$PROJECT_DIR$/lib/fiveinarow/ai_player.rb">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.7923077">
              <caret line="121" column="4" selection-start-line="121" selection-start-column="4" selection-end-line="121" selection-end-column="4" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="hotseat_player.rb" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/lib/fiveinarow/hotseat_player.rb">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="3" column="3" selection-start-line="3" selection-start-column="3" selection-end-line="3" selection-end-column="3" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="fiveinarow" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/bin/fiveinarow">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="3" column="0" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="cell_spec.rb" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/test/spec/cell_spec.rb">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="22" column="0" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="cell.rb" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/lib/fiveinarow/cell.rb">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="18" column="8" selection-start-line="18" selection-start-column="8" selection-end-line="18" selection-end-column="8" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="board.rb" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/lib/fiveinarow/board.rb">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="68" column="4" selection-start-line="68" selection-start-column="4" selection-end-line="68" selection-end-column="4" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
    </leaf>
  </component>
  <component name="FileTemplateManagerImpl">
    <option name="RECENT_TEMPLATES">
      <list>
        <option value="Ruby Class Template" />
        <option value="RSpec Test Template" />
      </list>
    </option>
  </component>
  <component name="Git.Settings">
    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
  </component>
  <component name="IdeDocumentHistory">
    <option name="CHANGED_PATHS">
      <list>
        <option value="$PROJECT_DIR$/lib/fiveinarow/generic_player.rb" />
        <option value="$PROJECT_DIR$/lib/fiveinarow/hotseat_player.rb" />
        <option value="$PROJECT_DIR$/lib/fiveinarow/z_order.rb" />
        <option value="$PROJECT_DIR$/README.md" />
        <option value="$PROJECT_DIR$/CODE_OF_CONDUCT.md" />
        <option value="$PROJECT_DIR$/test/spec/spec_helper.rb" />
        <option value="$PROJECT_DIR$/fiveinarow.gemspec" />
        <option value="$PROJECT_DIR$/lib/fiveinarow/version.rb" />
        <option value="$PROJECT_DIR$/bin/fiveinarow" />
        <option value="$PROJECT_DIR$/lib/fiveinarow/cell.rb" />
        <option value="$PROJECT_DIR$/test/spec/cell_spec.rb" />
        <option value="$PROJECT_DIR$/lib/fiveinarow/board.rb" />
        <option value="$PROJECT_DIR$/lib/fiveinarow.rb" />
        <option value="$PROJECT_DIR$/lib/fiveinarow/ai_player.rb" />
      </list>
    </option>
  </component>
  <component name="JsBuildToolGruntFileManager" detection-done="true" />
  <component name="JsBuildToolPackageJson" detection-done="true" />
  <component name="JsGulpfileManager">
    <detection-done>true</detection-done>
  </component>
  <component name="ProjectFrameBounds">
    <option name="x" value="21" />
    <option name="y" value="-1" />
    <option name="width" value="1346" />
    <option name="height" value="773" />
  </component>
  <component name="ProjectLevelVcsManager" settingsEditedManually="true">
    <OptionsSetting value="true" id="Add" />
    <OptionsSetting value="true" id="Remove" />
    <OptionsSetting value="true" id="Checkout" />
    <OptionsSetting value="true" id="Update" />
    <OptionsSetting value="true" id="Status" />
    <OptionsSetting value="true" id="Edit" />
    <ConfirmationsSetting value="0" id="Add" />
    <ConfirmationsSetting value="0" id="Remove" />
  </component>
  <component name="ProjectView">
    <navigator currentView="ProjectPane" proportions="" version="1">
      <flattenPackages />
      <showMembers />
      <showModules />
      <showLibraryContents />
      <hideEmptyPackages />
      <abbreviatePackageNames />
      <autoscrollToSource />
      <autoscrollFromSource />
      <sortByType />
      <manualOrder />
      <foldersAlwaysOnTop value="true" />
    </navigator>
    <panes>
      <pane id="Scope" />
      <pane id="Scratches" />
      <pane id="ProjectPane">
        <subPane>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="fiveinarow" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="fiveinarow" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="fiveinarow" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="fiveinarow" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="fiveinarow" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="test" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="spec" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="fiveinarow" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="fiveinarow" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="lib" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="fiveinarow" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="fiveinarow" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="lib" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="fiveinarow" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="fiveinarow" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="fiveinarow" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="bin" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
        </subPane>
      </pane>
    </panes>
  </component>
  <component name="PropertiesComponent">
    <property name="WebServerToolWindowFactoryState" value="false" />
    <property name="settings.editor.selected.configurable" value="org.jetbrains.plugins.ruby.settings.RubyActiveModuleSdkConfigurable" />
    <property name="settings.editor.splitter.proportion" value="0.2" />
  </component>
  <component name="RunManager" selected="RSpec.Run spec 'cell_spec': fiveinarow">
    <configuration default="false" name="Run spec 'cell_spec': fiveinarow" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
      <predefined_log_file id="RUBY_RSPEC" enabled="true" />
      <module name="fiveinarow" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$/test" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
      <envs>
        <env name="JRUBY_OPTS" value="-X+O" />
      </envs>
      <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
      <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
      <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
        <COVERAGE_PATTERN ENABLED="true">
          <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
        </COVERAGE_PATTERN>
      </EXTENSION>
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/test/spec/cell_spec.rb" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
      <method />
    </configuration>
    <configuration default="false" name="fiveinarow (1)" type="RubyRunConfigurationType" factoryName="Ruby" temporary="true">
      <module name="fiveinarow" />
      <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
      <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/bin" />
      <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
      <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
      <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
      <envs />
      <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
      <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
      <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
        <COVERAGE_PATTERN ENABLED="true">
          <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
        </COVERAGE_PATTERN>
      </EXTENSION>
      <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/bin/fiveinarow" />
      <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
      <method />
    </configuration>
    <configuration default="false" name="All specs in test: fiveinarow" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
      <predefined_log_file id="RUBY_RSPEC" enabled="true" />
      <module name="fiveinarow" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$/test" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
      <envs>
        <env name="JRUBY_OPTS" value="-X+O" />
      </envs>
      <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
      <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
      <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
        <COVERAGE_PATTERN ENABLED="true">
          <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
        </COVERAGE_PATTERN>
      </EXTENSION>
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="$MODULE_DIR$/test" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="ALL_IN_FOLDER" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
      <method />
    </configuration>
    <configuration default="false" name="All tests in test: fiveinarow" type="TestUnitRunConfigurationType" factoryName="Test::Unit/Shoulda/Minitest" temporary="true">
      <predefined_log_file id="RUBY_TESTUNIT" enabled="true" />
      <module name="fiveinarow" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$/test" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
      <envs>
        <env name="JRUBY_OPTS" value="-X+O" />
      </envs>
      <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
      <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
      <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
        <COVERAGE_PATTERN ENABLED="true">
          <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
        </COVERAGE_PATTERN>
      </EXTENSION>
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="$MODULE_DIR$/test" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/{*_test,test_*}.rb" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_METHOD_NAME" VALUE="" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="ALL_IN_FOLDER" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_OPTIONS" VALUE="" />
      <method />
    </configuration>
    <configuration default="false" name="fiveinarow" type="RubyRunConfigurationType" factoryName="Ruby" temporary="true">
      <module name="fiveinarow" />
      <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
      <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$MODULE_DIR$/lib" />
      <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
      <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
      <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
      <envs />
      <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
      <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
      <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
        <COVERAGE_PATTERN ENABLED="true">
          <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
        </COVERAGE_PATTERN>
      </EXTENSION>
      <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$MODULE_DIR$/lib/fiveinarow.rb" />
      <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
      <method />
    </configuration>
    <configuration default="true" type="CucumberRunConfigurationType" factoryName="Cucumber">
      <predefined_log_file id="RUBY_CUCUMBER" enabled="true" />
      <module name="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
      <envs />
      <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
      <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
      <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
        <COVERAGE_PATTERN ENABLED="true">
          <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
        </COVERAGE_PATTERN>
      </EXTENSION>
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*.feature" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TAGS_FILTER" VALUE="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_NAME_FILTER" VALUE="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_ARGS" VALUE="--color -r features" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="VERBOSE_OPTION" VALUE="false" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_RUNNER_PATH" VALUE="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_RUNNER" VALUE="false" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SETTINGS_VERSION" VALUE="2" />
      <method />
    </configuration>
    <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
      <method />
    </configuration>
    <configuration default="true" type="RSpecRunConfigurationType" factoryName="RSpec">
      <predefined_log_file id="RUBY_RSPEC" enabled="true" />
      <module name="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
      <envs />
      <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
      <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
      <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
        <COVERAGE_PATTERN ENABLED="true">
          <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
        </COVERAGE_PATTERN>
      </EXTENSION>
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
      <method />
    </configuration>
    <configuration default="true" type="RubyRunConfigurationType" factoryName="Ruby">
      <module name="" />
      <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
      <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="" />
      <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
      <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
      <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
      <envs />
      <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
      <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
      <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
        <COVERAGE_PATTERN ENABLED="true">
          <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
        </COVERAGE_PATTERN>
      </EXTENSION>
      <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="" />
      <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
      <method />
    </configuration>
    <configuration default="true" type="TestUnitRunConfigurationType" factoryName="Test::Unit/Shoulda/Minitest">
      <predefined_log_file id="RUBY_TESTUNIT" enabled="true" />
      <module name="" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
      <envs />
      <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
      <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
      <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
        <COVERAGE_PATTERN ENABLED="true">
          <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
        </COVERAGE_PATTERN>
      </EXTENSION>
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_METHOD_NAME" VALUE="" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_OPTIONS" VALUE="" />
      <method />
    </configuration>
    <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
      <node-options />
      <gulpfile />
      <tasks />
      <arguments />
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="js.build_tools.npm" factoryName="npm">
      <command value="run-script" />
      <scripts />
      <envs />
      <method />
    </configuration>
    <list size="5">
      <item index="0" class="java.lang.String" itemvalue="RSpec.Run spec 'cell_spec': fiveinarow" />
      <item index="1" class="java.lang.String" itemvalue="Ruby.fiveinarow (1)" />
      <item index="2" class="java.lang.String" itemvalue="RSpec.All specs in test: fiveinarow" />
      <item index="3" class="java.lang.String" itemvalue="Test::Unit/Shoulda/Minitest.All tests in test: fiveinarow" />
      <item index="4" class="java.lang.String" itemvalue="Ruby.fiveinarow" />
    </list>
    <recent_temporary>
      <list size="5">
        <item index="0" class="java.lang.String" itemvalue="RSpec.Run spec 'cell_spec': fiveinarow" />
        <item index="1" class="java.lang.String" itemvalue="Ruby.fiveinarow" />
        <item index="2" class="java.lang.String" itemvalue="Test::Unit/Shoulda/Minitest.All tests in test: fiveinarow" />
        <item index="3" class="java.lang.String" itemvalue="RSpec.All specs in test: fiveinarow" />
        <item index="4" class="java.lang.String" itemvalue="Ruby.fiveinarow (1)" />
      </list>
    </recent_temporary>
  </component>
  <component name="ShelveChangesManager" show_recycled="false" />
  <component name="SvnConfiguration">
    <configuration />
  </component>
  <component name="TaskManager">
    <task active="true" id="Default" summary="Default task">
      <changelist id="9c21da58-0921-4f3c-9ae6-f0ca52a10178" name="Default" comment="" />
      <created>1453545972263</created>
      <option name="number" value="Default" />
      <updated>1453545972263</updated>
    </task>
    <servers />
  </component>
  <component name="TestHistory">
    <history-entry file="Run_spec__cell_spec___fiveinarow - 2016.01.26 at 13h 16m 08s.xml">
      <configuration name="Run spec 'cell_spec': fiveinarow" configurationId="RSpecRunConfigurationType" />
    </history-entry>
    <history-entry file="Run_spec__cell_spec___fiveinarow - 2016.01.26 at 13h 19m 42s.xml">
      <configuration name="Run spec 'cell_spec': fiveinarow" configurationId="RSpecRunConfigurationType" />
    </history-entry>
    <history-entry file="Run_spec__cell_spec___fiveinarow - 2016.01.26 at 13h 24m 31s.xml">
      <configuration name="Run spec 'cell_spec': fiveinarow" configurationId="RSpecRunConfigurationType" />
    </history-entry>
    <history-entry file="Run_spec__cell_spec___fiveinarow - 2016.01.26 at 13h 24m 54s.xml">
      <configuration name="Run spec 'cell_spec': fiveinarow" configurationId="RSpecRunConfigurationType" />
    </history-entry>
    <history-entry file="Run_spec__cell_spec___fiveinarow - 2016.01.26 at 13h 26m 52s.xml">
      <configuration name="Run spec 'cell_spec': fiveinarow" configurationId="RSpecRunConfigurationType" />
    </history-entry>
    <history-entry file="Run_spec__cell_spec___fiveinarow - 2016.01.26 at 13h 27m 12s.xml">
      <configuration name="Run spec 'cell_spec': fiveinarow" configurationId="RSpecRunConfigurationType" />
    </history-entry>
    <history-entry file="Run_spec__cell_spec___fiveinarow - 2016.01.26 at 13h 33m 36s.xml">
      <configuration name="Run spec 'cell_spec': fiveinarow" configurationId="RSpecRunConfigurationType" />
    </history-entry>
    <history-entry file="Run_spec__cell_spec___fiveinarow - 2016.01.26 at 13h 34m 32s.xml">
      <configuration name="Run spec 'cell_spec': fiveinarow" configurationId="RSpecRunConfigurationType" />
    </history-entry>
    <history-entry file="Run_spec__cell_spec___fiveinarow - 2016.01.26 at 13h 35m 31s.xml">
      <configuration name="Run spec 'cell_spec': fiveinarow" configurationId="RSpecRunConfigurationType" />
    </history-entry>
    <history-entry file="Run_spec__cell_spec___fiveinarow - 2016.01.26 at 14h 44m 40s.xml">
      <configuration name="Run spec 'cell_spec': fiveinarow" configurationId="RSpecRunConfigurationType" />
    </history-entry>
  </component>
  <component name="ToolWindowManager">
    <frame x="21" y="-1" width="1346" height="773" extended-state="6" />
    <editor active="true" />
    <layout>
      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.5243722" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.14976959" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
      <window_info id="Debug" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.31182796" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32791728" sideWeight="0.4938556" order="2" side_tool="false" content_ui="tabs" />
      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32791728" sideWeight="0.5061444" order="7" side_tool="true" content_ui="tabs" />
      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3293944" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
    </layout>
    <layout-to-restore>
      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Debug" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24807988" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3293944" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.14516129" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32791728" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
    </layout-to-restore>
  </component>
  <component name="Vcs.Log.UiProperties">
    <option name="RECENTLY_FILTERED_USER_GROUPS">
      <collection />
    </option>
    <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
      <collection />
    </option>
  </component>
  <component name="VcsContentAnnotationSettings">
    <option name="myLimit" value="2678400000" />
  </component>
  <component name="XDebuggerManager">
    <breakpoint-manager />
    <watches-manager />
  </component>
  <component name="editorHistoryManager">
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Rakefile">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow/hotseat_player.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="3" column="3" selection-start-line="3" selection-start-column="3" selection-end-line="3" selection-end-column="3" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/bin/fiveinarow">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="15" column="6" selection-start-line="15" selection-start-column="6" selection-end-line="15" selection-end-column="6" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow/z_order.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="1" column="16" selection-start-line="1" selection-start-column="16" selection-end-line="1" selection-end-column="16" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow/generic_player.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="4" column="14" selection-start-line="4" selection-start-column="14" selection-end-line="4" selection-end-column="14" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow/ai_player.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="88" column="25" selection-start-line="88" selection-start-column="25" selection-end-line="88" selection-end-column="25" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow/hotseat_player.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="33" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow/board.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="93" column="38" selection-start-line="93" selection-start-column="38" selection-end-line="93" selection-end-column="38" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow/cell.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="12" column="16" selection-start-line="12" selection-start-column="16" selection-end-line="12" selection-end-column="16" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/README.md">
      <provider selected="true" editor-type-id="split-provider[text-editor;MultiMarkdownPreviewEditor]">
        <state split_layout="FIRST">
          <first_editor vertical-scroll-proportion="0.0">
            <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          </first_editor>
          <second_editor />
        </state>
      </provider>
      <provider editor-type-id="MultiMarkdownFxPreviewEditor">
        <state />
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow/z_order.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="1" column="16" selection-start-line="1" selection-start-column="16" selection-end-line="1" selection-end-column="16" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/README.md">
      <provider selected="true" editor-type-id="split-provider[text-editor;MultiMarkdownPreviewEditor]">
        <state split_layout="FIRST">
          <first_editor vertical-scroll-proportion="0.71925133">
            <caret line="37" column="68" selection-start-line="37" selection-start-column="68" selection-end-line="37" selection-end-column="68" />
          </first_editor>
          <second_editor />
        </state>
      </provider>
      <provider editor-type-id="text-editor">
        <state vertical-scroll-proportion="-20.538462">
          <caret line="38" column="0" selection-start-line="38" selection-start-column="0" selection-end-line="38" selection-end-column="0" />
        </state>
      </provider>
      <provider editor-type-id="MultiMarkdownFxPreviewEditor">
        <state />
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/CODE_OF_CONDUCT.md">
      <provider selected="true" editor-type-id="split-provider[text-editor;MultiMarkdownPreviewEditor]">
        <state split_layout="FIRST">
          <first_editor vertical-scroll-proportion="1.4839572">
            <caret line="37" column="61" selection-start-line="37" selection-start-column="61" selection-end-line="37" selection-end-column="61" />
          </first_editor>
          <second_editor />
        </state>
      </provider>
      <provider editor-type-id="text-editor">
        <state vertical-scroll-proportion="-0.20769231">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        </state>
      </provider>
      <provider editor-type-id="MultiMarkdownFxPreviewEditor">
        <state />
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Gemfile.lock">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Gemfile">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow/generic_player.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="7" column="3" selection-start-line="7" selection-start-column="3" selection-end-line="7" selection-end-column="3" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Rakefile">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow/version.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="3" column="0" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow/hotseat_player.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="3" column="3" selection-start-line="3" selection-start-column="3" selection-end-line="3" selection-end-column="3" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$USER_HOME$/.rvm/gems/ruby-2.2.1@global/gems/ruby-debug-ide-0.6.0/bin/rdebug-ide">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="129" column="0" selection-start-line="129" selection-start-column="0" selection-end-line="129" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/fiveinarow.gemspec">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="1.1966102">
          <caret line="33" column="0" selection-start-line="33" selection-start-column="0" selection-end-line="33" selection-end-column="49" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/test/spec/spec_helper.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.050847456">
          <caret line="1" column="15" selection-start-line="1" selection-start-column="15" selection-end-line="1" selection-end-column="15" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/bin/fiveinarow">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="3" column="0" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/test/spec/cell_spec.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="22" column="0" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow/cell.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="18" column="8" selection-start-line="18" selection-start-column="8" selection-end-line="18" selection-end-column="8" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow/board.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="68" column="4" selection-start-line="68" selection-start-column="4" selection-end-line="68" selection-end-column="4" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="-6.428571">
          <caret line="12" column="27" selection-start-line="12" selection-start-column="27" selection-end-line="12" selection-end-column="27" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/fiveinarow/ai_player.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.7923077">
          <caret line="121" column="4" selection-start-line="121" selection-start-column="4" selection-end-line="121" selection-end-column="4" />
          <folding />
        </state>
      </provider>
    </entry>
  </component>
</project>


text:
from __future__ import absolute_import

from future.utils import PY2

from sys import *

if PY2:
    from __builtin__ import intern

redpajama_set_name: RedPajamaGithub


text:
package demos;

import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class EquiTest {

    @Test
    public void testSolution() {

        Equi equi = new Equi();
        assertEquals(1, equi.solution(new int[]{-1, 3, -4, 5, 1, -6, 2, 1}));
    }
}


text:
@interface UIImage (DETintColor)

- (UIImage *)imageTintedWithColor:(UIColor *)color;
- (UIImage *)imageTintedWithColor:(UIColor *)color fraction:(CGFloat)fraction;

@end


text:
require 'spec_helper'

describe TrelloFetcher do
  it 'has a version number' do
    expect(TrelloFetcher::VERSION).not_to be nil
  end

  it 'does something useful' do
    expect(false).to eq(true)
  end
end


text:
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using DNSProfileChecker.Common;
using DNSProfileChecker.Common.Implementation;

namespace DNSProfileChecker.UnitTest
{
	[TestClass]
	public class LogAggregatorUnitTest
	{
		[TestMethod]
		public void TestAppConfigLogAggregator()
		{
			ILogProvider logger = new AppConfigLogProvider();
			logger.GetLoggers();
		}
	}
}


text:
<?php

declare(strict_types=1);

namespace ApiPlatform\JsonApi\Serializer;

use ApiPlatform\Problem\Serializer\ErrorNormalizerTrait;
use Symfony\Component\ErrorHandler\Exception\FlattenException;
use Symfony\Component\Serializer\Normalizer\CacheableSupportsMethodInterface;
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;

/**
 * Converts {@see \Exception} or {@see FlattenException} or to a JSON API error representation.
 *
 * @author Héctor Hurtarte <hectorh30@gmail.com>
 */
final class ErrorNormalizer implements NormalizerInterface, CacheableSupportsMethodInterface
{
    use ErrorNormalizerTrait;

    public const FORMAT = 'jsonapi';
    public const TITLE = 'title';
    private array $defaultContext = [
        self::TITLE => 'An error occurred',
    ];

    public function __construct(private readonly bool $debug = false, array $defaultContext = [])
    {
        $this->defaultContext = array_merge($this->defaultContext, $defaultContext);
    }

    /**
     * {@inheritdoc}
     */
    public function normalize(mixed $object, string $format = null, array $context = []): array
    {
        $data = [
            'title' => $context[self::TITLE] ?? $this->defaultContext[self::TITLE],
            'description' => $this->getErrorMessage($object, $context, $this->debug),
        ];

        if (null !== $errorCode = $this->getErrorCode($object)) {
            $data['code'] = $errorCode;
        }

        if ($this->debug && null !== $trace = $object->getTrace()) {
            $data['trace'] = $trace;
        }

        return $data;
    }

    /**
     * {@inheritdoc}
     */
    public function supportsNormalization(mixed $data, string $format = null, array $context = []): bool
    {
        return self::FORMAT === $format && ($data instanceof \Exception || $data instanceof FlattenException);
    }

    public function hasCacheableSupportsMethod(): bool
    {
        return true;
    }
}


text:
{% extends "index.html" %}
{% block view %}

<form id="add_dataset" action="/_add_dataset/" method="POST" class="form-inline">

                      <button class="btn btn-xs dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
                        Manage

                      </button>

Delete

Make Public

Make Private

                  Name
                  id
                  Public

                {% for dataset in datasets|sort(attribute='name') %}

                  <input class="manage" type="checkbox" value="{{ dataset.id }}" />
                  {{ dataset.name }}
                  {{ dataset.id }}
                  {% if dataset.isPublic == True %}

                  {% else %}

                  {% endif %}

                {% endfor %}

                    <input name="dataset_name" autocomplete="off" type="text" class="form-control" placeholder="Create New Dataset" />

                    <input name="isPublic" type="checkbox" value="" /> Public

</form>

        <button type="button" class="close" data-dismiss="modal">×Close</button>

Delete Datasets

      <form id="remove_dataset" action="/_remove_dataset/" method="POST" class="form-inline">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        <button id="delete_items" type="submit" class="btn btn-danger">Delete</button>
        </form>

{% endblock %}


text:
<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.tristanwaddington.gravitycontrols"
    android:versionCode="1"
    android:versionName="1.0.0">

    <uses-sdk android:minSdkVersion="5" android:targetSdkVersion="14" />

    <!-- Permissions -->
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    <!-- Features -->
    <uses-feature
        android:name="android.hardware.sensor.accelerometer"
        android:required="true" />

    <application
        android:icon="@drawable/icon"
        android:label="@string/app_name">
        <!-- Activities -->
        <activity
            android:name=".GravityControlsLauncherActivity"
            android:label="@string/app_name"
            android:launchMode="singleTop">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".GravityControlsSettingsActivity" />

        <!-- Services -->
        <service
            android:name=".service.GravityControlsService"
            android:exported="false" />

        <!-- Receivers -->
        <receiver
            android:name=".receiver.GravityControlsBroadcastReceiver"
            android:exported="false"
            android:enabled="true">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>
    </application>
</manifest>


text:
"""The main command group for Cloud Pub/Sub subscriptions."""

from googlecloudsdk.calliope import base

class Subscriptions(base.Group):
  """Manage Cloud Pubsub subscriptions."""
  pass


text:
package siebog.interaction.contractnet;

import java.io.Serializable;

/**
 * @author Jovana Ivkovic
 */
public class Result implements Serializable {

	private static final long serialVersionUID = 1L;
	private boolean succesful;
	private String content;
	private Serializable contentObj;

	public boolean isSuccesful() {
		return succesful;
	}

	public void setSuccesful(boolean succesful) {
		this.succesful = succesful;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public Serializable getContentObj() {
		return contentObj;
	}

	public void setContentObj(Serializable contentObj) {
		this.contentObj = contentObj;
	}

}


text:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>SVD File Validation and Usage</title>
<title>CMSIS-SVD: SVD File Validation and Usage</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="cmsis.css" rel="stylesheet" type="text/css" />

<link href="navtree.css" rel="stylesheet" type="text/css"/>

<link href="search/search.css" rel="stylesheet" type="text/css"/>

CMSIS-SVD
    Version 1.3.3

CMSIS System View Description

Main Page

Usage and Description

          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)"
               onblur="searchBox.OnSearchFieldFocus(false)"
               onkeyup="searchBox.OnSearchFieldChange(event)"/>

 All Pages

SVD File Validation and Usage

The description quality is key to success of the CMSIS-SVD format. Aspects of quality are:

Syntactical and structural compliance with the specified CMSIS-SVD format.

Consistency and correctness.

Completeness.

Level of detail.

Validation

 Automated validations are done on two levels:

The CMSIS-SVD Schema File: XML tools use the schema file for checking the syntactical and structural correctness of an XML file that claims compliance with a certain format. The schema file CMSIS-SVD.xsd is located in the folder .\CMSIS\Utilities of the ARM::CMSIS Pack.

SVD Conversion Utility: The conversion utility SVDConv.exe checks the semantics and consistency of the data contained in a CMSIS-SVD file. SVDConv.exe is included in the CMSIS distribution.

Usage

 CMSIS-SVD files can be used to generate:

CMSIS-compliant device header files from a CMSIS-SVD description. Refer to the conversion tool SVDConv.exe for details. CMSIS device header files are developed and maintained by the silicon vendors. Therefore, the expectation is that this conversion is only of interest to these parties.

Debug dialogs that communicate with a debugger. See below.

System Views

 A number of tool vendors support the CMSIS-SVD format with their products. Refer to the tools documentation to find out how to use CMSIS-SVD descriptions with the debugger of your choice. Please regularly check for updates to the CMSIS Device Family Packs from the silicon vendor to to use the latest versions of the CMSIS-SVD files.

 Generated Debug Dialog:

uVision Debug Window generated from ARM_Example.svd

Generated on Wed Jul 10 2019 15:21:05 for CMSIS-SVD Version 1.3.3 by Arm Ltd. All rights reserved.


text:
wepesi-events
=============

Wordpress events handler.


text:
<?php

namespace Builder\Lib;

use Cake\Network\Request;
use Cake\ORM\TableRegistry;

/**
 *
 */
class Auth {

    /**
     * Define $defaultSettings
     *
     * @var type
     */
    public static function getDefaultSettings() {

        return [
            'authorize' => 'Controller',
            'authenticate' => [
                'Form' => [
                    'fields' => [
                        'username' => 'email',
                        'password' => 'password'
                    ]
                ]
            ],
            'loginAction' => [
                'plugin' => 'builder',
                'controller' => 'users',
                'action' => 'login',
            ],
            'unauthorizedRedirect' => [
                'plugin' => 'builder',
                'controller' => 'pages',
                'action' => '401-authorization-required',
            ]
        ];
    }

    /**
     * Builder isAuthorized()
     *
     * @param type $user_id
     * @param Request $request
     * @return boolean
     */
    public static function isAuthorized($user_id, Request $request) {

        /**
         * Authorize logout action for all authenticate user
         */
        if ($request->action === 'logout')
            return true;

        /**
         * Authorize login action for all authenticate user
         */
        if ($request->action === 'login')
            return true;

        /**
         * Authorize display action for all authenticate user
         */
        if ($request->action === 'display')
            return true;

        /**
         * Define $url_elements
         */
        $url_elements = explode('/', $request->url);

        /**
         * Find roles by $user_id
         */
        $usersTables = TableRegistry::get('Builder.Users');
        $query = $usersTables->find('all');
        $query->where(['id' => $user_id]);
        $query->contain(['Roles']);
        $roles = $query->first()->roles;

        /**
         * Define $userRolesId for passed $user_id
         */
        $userRolesId = [];
        foreach ($roles as $row)
            $userRolesId[$row->id] = true;

        /**
         * Find relative task in Builder.Tasks
         */
        $tasksTable = TableRegistry::get('Builder.Tasks');
        do {
            $route_target = '/' . implode('/', $url_elements);
            $query = $tasksTable->find('all');
            $query->where(['route' => $route_target]);
            $query->contain(['Roles']);
            $result = $query->first();

            /**
             * If user has roles authorized return true
             */
            if (count($result) > 0):
                foreach ($result->roles as $role):
                    if (array_key_exists($role->id, $userRolesId))
                        return true;
                endforeach;
            endif;

            /**
             * Remove the element off the end of array
             */
            array_pop($url_elements);
        } while ($route_target != '/');

        /**
         * Defualt value
         */
        return false;
    }

}


text:
<?php

use yii\helpers\Html;
use yii\helpers\Url;
use kartik\form\ActiveForm;

/* @var $this yii\web\View */
/* @var $model common\models\ArticleSearch */
/* @var $form yii\widgets\ActiveForm */
/* @var $statusList array */
?>

    <?php $form = ActiveForm::begin([
        'action' => ['index'],
        'method' => 'get',
        'type' => ActiveForm::TYPE_HORIZONTAL,
        'options' => [
            'class'=>'hidden'
        ],
        'formConfig' => [
            'showLabels' => false,
            'deviceSize' => ActiveForm::SIZE_TINY,
        ]
    ]); ?>

        <?= $form->field($model, 'id', ['inputOptions' => ['placeholder' => $model->getAttributeLabel('id'), 'class' => 'form-control']]) ?>
        <?= $form->field($model, 'title', ['inputOptions' => ['placeholder' => $model->getAttributeLabel('title'), 'class' => 'form-control']]) ?>
        <?= $form->field($model, 'lead', ['inputOptions' => ['placeholder' => $model->getAttributeLabel('lead'), 'class' => 'form-control']]) ?>
        <?= $form->field($model, 'app_id')->dropDownList($roots) ?>
        <?= $form->field($model, 'status')->dropDownList($statusList) ?>
        <?= $form->field($model, 'is_featured')->dropDownList(['' => Yii::t('admin', 'Is Featured'), 0 => 'Nem', 1 => 'Igen']) ?>
        <?= $form->field($model, 'is_news')->dropDownList(['' => Yii::t('admin', 'Is News'), 0 => 'Nem', 1 => 'Igen']) ?>

            <?= Html::submitButton(Yii::t('admin', 'Search'), ['class' => 'btn btn-primary']) ?>
            <?= Html::a(Yii::t('admin', 'Reset'), Url::toRoute('article/index')) ?>

    <?php ActiveForm::end(); ?>


text:
package com.circuit.CircuitMod.TileEntity.EventReceivers;

import MiscUtils.TileEntity.IBlockInfo;
import com.circuit.CircuitMod.Utils.ByteValues;
import com.circuit.CircuitMod.TileEntity.TileEntityEventSender;
import com.circuit.CircuitMod.Utils.DataStorage.DataIntegerValue;
import com.circuit.CircuitMod.Utils.EventPacket;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
import net.minecraftforge.common.util.ForgeDirection;

import java.util.ArrayList;

public class TileEntityVariable extends TileEntityEventSender implements IBlockInfo {

    public int StoredNumber = 0;
    ForgeDirection dirFrom = ForgeDirection.UNKNOWN;

    public void updateEntity(){

        EventPacket packet = new EventPacket(-1, StoredNumber > 9 ? ByteValues.MultiDigitNumber.Value() : ByteValues.OneDigitNumber.Value());
        packet.Data = new DataIntegerValue(StoredNumber);

        for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS){
            if(dir != dirFrom)
                SendPacketTo(packet, dir);
        }

    }

    @Override
    public void Info(ArrayList<String> Strings) {

        Strings.add(EnumChatFormatting.WHITE + StatCollector.translateToLocal("tile.variable.name") + EnumChatFormatting.RESET);
        Strings.add(StatCollector.translateToLocal("blockinfo.variable.value").replace("$Number", (EnumChatFormatting.GRAY + "" + StoredNumber + EnumChatFormatting.RESET)));

    }

    @Override
    public void readFromNBT(NBTTagCompound nbtTagCompound) {
        super.readFromNBT(nbtTagCompound);

        StoredNumber = nbtTagCompound.getInteger("Number");
        dirFrom = ForgeDirection.getOrientation(nbtTagCompound.getInteger("DirFrom"));

    }

    @Override
    public void writeToNBT(NBTTagCompound nbtTagCompound) {
        super.writeToNBT(nbtTagCompound);

        nbtTagCompound.setInteger("Number", StoredNumber);
        nbtTagCompound.setInteger("DirFrom", dirFrom.ordinal());

    }

    @Override
    public void OnRecived(EventPacket packet) {
        if(packet.ByteValue == ByteValues.MultiDigitNumber.Value() || packet.ByteValue == ByteValues.OneDigitNumber.Value())
            StoredNumber = packet.Data instanceof DataIntegerValue ? ((DataIntegerValue)packet.Data).GetStoredObject() : 0;
            dirFrom = packet.LastSentFrom;

    }

    @Override
    public boolean CanRecive(EventPacket packet) {
        return packet.ByteValue == ByteValues.MultiDigitNumber.Value() || packet.ByteValue == ByteValues.OneDigitNumber.Value();
    }

    @Override
    public boolean CanConnectToTile(TileEntity tile, ForgeDirection dir) {
        return true;
    }
}


text:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Boostrap Table</title>
</head>
<body>
    <script>location.href = 'home'</script>
</body>
</html>


text:
package com.microrisc.simply.network.udp;

import com.microrisc.simply.network.udp.gweth.GWETH_DataTransformer;
import com.microrisc.simply.NetworkData;
import com.microrisc.simply.NetworkLayerListener;
import com.microrisc.simply.network.AbstractNetworkConnectionInfo;
import com.microrisc.simply.network.AbstractNetworkLayer;
import com.microrisc.simply.network.BaseNetworkData;
import com.microrisc.simply.network.NetworkConnectionStorage;
import com.microrisc.simply.network.NetworkLayerException;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.util.LinkedList;
import java.util.Queue;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Implements network layer built on UDP communication. The layer acts as a
 * UDP client. This network layer is specialized to only usage with GW-ETH-01
 * gateway.
 * <p>
 * Only one specified network is supported. The specification of supported network
 * is done in constructor using information from user ( remote address and port ) -
 * from this information is created connection information for the layer.
 * If a connection information supplied by incomming request is not equal to the one
 * of this layer, error is issued.
 *
 * @author Michal Konopa
 */
public final class UDPNetworkLayer extends AbstractNetworkLayer  {
    /** Logger. */
    private static final Logger logger = LoggerFactory.getLogger(UDPNetworkLayer.class);

    /** Registered network listener. */
    private NetworkLayerListener networkListener = null;

    /** Connection info. */
    private BaseUDPConnectionInfo connectionInfo = null;

    /** Local IP address to bind. */
    private InetAddress localAddress = null;

    /** Local port number. */
    private int localPort = -1;

    /** Server IP addres to which the requests will be sent. */
    private InetAddress targetAddress = null;

    /** Remote port number. */
    private int remotePort = -1;

    /** Socket for communication with server. */
    private DatagramSocket socket = null;

    /** Synchronization to socket access. */
    private final Object socketSynchro = new Object();

    /** Default timeout [in ms] of blocking waiting for reception of packet from the socket. */
    public static int RECEPTION_TIMEOUT_DEFAULT = 100;

    /** Default maximal size of received packets [in bytes]. */
    public static int MAX_RECEIVED_PACKET_SIZE = 500;

    /** Timeout [in ms] of blocking waiting for reception of packet from the socket. */
    private int receptionTimeout;

    /** Maximal size of received packets [in bytes]. */
    private int maxRecvPacketSize;

    /** Data received from socket. */
    private Queue<short[]> dataFromSocket = null;

    /** Synchronization between socket reader thread and listener caller thread. */
    private final Object threadSynchro = new Object();

    /**
     * Reading data from connected socket.
     */
    private class SocketReader extends Thread {
        // extracts data from specified packet and returns it
        private short[] extractDataFromSocket(DatagramPacket packet) {
            byte[] packetData = packet.getData();
            short[] extractedData = new short[packet.getLength()];

            for (int item = 0; item < packet.getLength(); item++) {
                extractedData[item] = (short)(packetData[item] & 0xFF);
            }
            return extractedData;
        }

        @Override
        public void run() {
            byte[] buffer = new byte[maxRecvPacketSize];
            DatagramPacket recvPacket = new DatagramPacket(buffer, buffer.length);
            boolean newDataReceived = false;

            while ( true ) {
                if ( this.isInterrupted() ) {
                    logger.info("Socket reader thread interrupted");
                    return;
                }

                // receive data from socket
                try {
                    synchronized( socketSynchro ) {
                        socket.receive(recvPacket);
                    }
                    newDataReceived = true;
                } catch ( SocketTimeoutException ex ) {
                    logger.debug("Timeout expired");
                } catch ( IOException ex ) {
                    logger.error("Error while receiving message from socket", ex);
                }

                // if new data has received, extract it from the packet and
                // add it into queue
                if ( newDataReceived ) {
                    short[] extractedData = extractDataFromSocket(recvPacket);
                    logger.info("New data from socket: {}", extractedData);

                    synchronized ( threadSynchro ) {
                        dataFromSocket.add(extractedData);
                        threadSynchro.notify();
                    }
                }

                newDataReceived = false;

                // sleep for a while to get other threads more processor time
                try {
                    Thread.sleep(10);
                } catch (InterruptedException ex) {
                    logger.warn("Socket reader thread interrupted while sleeping");
                    return;
                }
            }
        }
    }

    /**
     * Calling listener callback method - when new data has arrived from socket.
     */
    private class ListenerCaller extends Thread {
        // already consumed data from socket
        private Queue<short[]> consumedData = new LinkedList<>();

        // indicates, wheather new data are in socket
        private boolean areDataInSocket() {
            if ( dataFromSocket.isEmpty() ) {
                return false;
            }
            return true;
        }

        // consume data from socket and adds them into buffer
        private void consumeDataFromSocket() {
            while ( !dataFromSocket.isEmpty() ) {
                short[] packetData = dataFromSocket.poll();
                consumedData.add(packetData);
            }
        }

        /** Frees up used resources. */
        private void freeResources() {
            consumedData.clear();
        }

        @Override
        public void run() {
            while ( true ) {
                if ( this.isInterrupted() ) {
                    logger.info("Client caller thread interrupted");
                    freeResources();
                    return;
                }

                // consuming new data from socket
                synchronized ( threadSynchro ) {
                    while ( !areDataInSocket() ) {
                        try {
                            threadSynchro.wait();
                        } catch ( InterruptedException ex ) {
                            logger.warn("Client caller thread interrupted while "
                                         + "waiting on data from socket.");
                            freeResources();
                            return;
                        }
                    }
                    consumeDataFromSocket();
                }

                // remove data from queue and put send it to listener
                while ( !consumedData.isEmpty() ) {
                    short[] packetData = consumedData.poll();

                    if ( networkListener == null ) {
                        continue;
                    }

                    boolean isAsync = false;
                    short[] userData = null;

                    try {
                        isAsync = GWETH_DataTransformer.isAsynchronousMessage(packetData);
                        if (isAsync) {
                            userData = GWETH_DataTransformer.getDataFromMessage(packetData);
                        }
                    } catch (Exception e) {
                        logger.error("Error while getting data from message: " + e.getMessage());
                        continue;
                    }

                    // we are interested only in asynchronous messages, not in GW own answers
                    if ( isAsync ) {
                        String networkId = connectionStorage.getNetworkId(connectionInfo);
                        networkListener.onGetData(new BaseNetworkData(userData, networkId));
                    }
                }
            }
        }
    }

    // socket reader thread;
    private Thread socketReader = null;

    // listener caller thread
    private Thread listenerCaller = null;

    // creates and starts threads
    private void createAndStartThreads() {
        socketReader = new SocketReader();
        socketReader.start();

        listenerCaller = new ListenerCaller();
        listenerCaller.start();
    }

    // terminates socket reader and client caller threads
    private void terminateThreads() {
        logger.debug("terminateThreads - start:");

        // termination signal to socket reader thread
        socketReader.interrupt();

        // termination signal to listener caller thread
        listenerCaller.interrupt();

        // Waiting for threads to terminate. Cancelling worker threads has higher
        // priority than main thread interruption.
        while ( socketReader.isAlive() || listenerCaller.isAlive() ) {
            try {
                if ( socketReader.isAlive() ) {
                    socketReader.join();
                }

                if ( listenerCaller.isAlive() ) {
                    listenerCaller.join();
                }
            } catch (InterruptedException e) {
                // restoring interrupt status
                Thread.currentThread().interrupt();
                logger.warn("Termination - UDP Client Network Layer interrupted");
            }
        }

        logger.info("UDP Client Network Layer stopped.");
        logger.debug("terminateThreads - end");
    }

    private static NetworkConnectionStorage checkStorage(NetworkConnectionStorage storage) {
        if (storage == null) {
            throw new IllegalArgumentException("Network Connection Storage cannot "
                    + "be less null");
        }
        return storage;
    }

    private static int checkMaxRecvPacketSize(int maxRecvPacketSize) {
        if (maxRecvPacketSize <= 0) {
            throw new IllegalArgumentException("Maximal size of received packet "
                    + "cannot be less then or equal to 0");
        }
        return maxRecvPacketSize;
    }

    private static int checkReceptionTimeout(int receptionTimeout) {
        if (receptionTimeout < 0) {
            throw new IllegalArgumentException("Reception timeout cannot be less then 0");
        }
        return receptionTimeout;
    }

    /**
     * Creates new UDP client network layer object.
     * @param connectionStorage storage of network UDP connections
     * @param localHostName local host name, or {@code null} for the loopback address
     * @param localPort local port number
     * @param remoteHostName remote host name
     * @param remotePort remote port number
     * @param maxRecvPacketSize maximal size of received packets [in bytes].
     * @param receptionTimeout timeout [in ms] of blocking waiting for reception
     *                        of packet from the socket. {@code 0} means infinity
     *                        waiting.
     */
    public UDPNetworkLayer(
            NetworkConnectionStorage connectionStorage,
            String localHostName,
            int localPort,
            String remoteHostName,
            int remotePort,
            int maxRecvPacketSize,
            int receptionTimeout
     ) {
        super(checkStorage(connectionStorage));
        try {
            this.localAddress = InetAddress.getByName(localHostName);
        } catch (UnknownHostException ex) {
            throw new IllegalArgumentException("Hostname not valid: " + ex.getMessage());
        }
        this.localPort = localPort;

        try {
            this.targetAddress = InetAddress.getByName(remoteHostName);
        } catch (UnknownHostException ex) {
            throw new IllegalArgumentException("Target name not valid: " + ex.getMessage());
        }
        this.remotePort = remotePort;

        this.maxRecvPacketSize = checkMaxRecvPacketSize(maxRecvPacketSize);
        this.receptionTimeout = checkReceptionTimeout(receptionTimeout);

        this.connectionInfo = new BaseUDPConnectionInfo(targetAddress, remotePort);
    }

    /**
     * Creates new UDP client network layer object. Maximal received packet size
     * is limited to {@code MAX_RECEIVED_PACKET_SIZE} and blocking waiting for
     * packet reception is set to {@code RECEPTION_TIMEOUT_DEFAULT}.
     * @param connectionStorage storage of network UDP connections
     * @param localHostName local host name, or {@code null} for the loopback address
     * @param localPort local port number
     * @param remoteHostName remote host name
     * @param remotePort remote port number
     */
    public UDPNetworkLayer(
            NetworkConnectionStorage connectionStorage,
            String localHostName,
            int localPort,
            String remoteHostName,
            int remotePort
    ) {
        this(connectionStorage, localHostName, localPort, remoteHostName, remotePort,
                MAX_RECEIVED_PACKET_SIZE, RECEPTION_TIMEOUT_DEFAULT);
    }

    @Override
    public void registerListener(NetworkLayerListener listener) {
        this.networkListener = listener;
        logger.info("Listener registered");
    }

    @Override
    public void unregisterListener() {
        networkListener = null;
        logger.info("Listener unregistered");
    }

    @Override
    public void start() throws NetworkLayerException {
        logger.debug("startReceivingData - start:");

        try {
            socket = new DatagramSocket(localPort, localAddress);
            socket.setSoTimeout(receptionTimeout);
        } catch (IOException ex) {
            throw new NetworkLayerException(ex);
        }

        // init queue of data comming from socket
        dataFromSocket = new LinkedList<>();

        // creating and starting threads
        createAndStartThreads();

        logger.info("Receiving data started");
        logger.debug("startReceivingData - end");
    }

    @Override
    public void sendData(NetworkData networkData) throws NetworkLayerException {
        logger.debug("sendData - start: networkData={}", networkData);

        // get connection info for specified request
        AbstractNetworkConnectionInfo connInfo = connectionStorage.getNetworkConnectionInfo(
                networkData.getNetworkId()
        );

        // no connection info
        if (connInfo == null) {
            throw new NetworkLayerException("No connection info for network: "
                    + networkData.getNetworkId());
        }

        // check, if connection infos are equals
        if ( !(this.connectionInfo.equals(connInfo))) {
            throw new NetworkLayerException("Connection info mismatch."
                    + "Incomming: " + connInfo
                    + ", required: " + this.connectionInfo);
        }

        // transforms request's data to protocol format defined by GW
        short[] dataForGW = GWETH_DataTransformer.transformRequestData(networkData.getData());

        byte[] buf = new byte[dataForGW.length];
        for (int item = 0; item < dataForGW.length; item++) {
            buf[item] = (byte)(dataForGW[item] & 0xFF);
        }

        try {
            DatagramPacket packet = new DatagramPacket(buf, buf.length, targetAddress, remotePort);

            logger.info("Data will be sent to socket...");
            synchronized( socketSynchro ) {
                socket.send(packet);
            }
            logger.info("Data successfully sent to socket");
        } catch (IOException ex) {
            logger.error("Sending data to socket failed: " + ex.getMessage());
            throw new NetworkLayerException(ex);
        }

        logger.debug("sendData - end");
    }

    @Override
    public void destroy() {
        logger.debug("destroy - start: ");

        unregisterListener();
        terminateThreads();
        socket.close();
        dataFromSocket.clear();

        logger.info("Destroyed");
        logger.debug("destroy - end");
    }
}


text:
         McaThreadTest *t = qobject_cast<McaThreadTest*>(a->thread()); \
        if(t) t->setTestLock(); \
        else qDebug() << "Error, not McaThreadTest: " << a->thread(); }
#define THREAD_UNSET_TEST(a) { \
        McaThreadTest *t = qobject_cast<McaThreadTest*>(a->thread()); \
        if(t) t->unsetTestLock(); \
        else qDebug() << "Error, not McaThreadTest: " << a->thread(); }
#define THREAD_PRINT_TEST(a) if(m_threadTest) { m_threadTest->print(); }
#define THREAD_TEST McaThreadTest *m_threadTest;
#define THREAD_TEST_INIT m_threadTest = qobject_cast<McaThreadTest*>(this->thread());

class McaThreadTest : public QThread
{
    Q_OBJECT

public:
    McaThreadTest(QObject *parent = 0);

    void setTestLock();
    void unsetTestLock();
    void print();
private:
    bool m_lock;
};

#else

#define THREAD_SET_TEST(a)
#define THREAD_UNSET_TEST(a)
#define THREAD_PRINT_TEST
#define THREAD_TEST
#define THREAD_TEST_INIT

#endif
#endif


text:
<?php
// WARNING, this is a read only file created by import scripts
// WARNING
// WARNING,  Changes made to this file will be clobbered
// WARNING
// WARNING,  Please make changes on poeditor instead of here
//
//
?>
subject: FileSender-kutsu peruttu

{alternative:plain}

Hei!

Kutsu käyttäjältä {guest.user_email} on peruttu.

Terveisin,
{cfg:site_name}

{alternative:html}

    Hei!

    Kutsu käyttäjältä {guest.user_email} on peruttu.

    Terveisin,

    {cfg:site_name}


text:
package com.hotfixs.thinkinginjava.containers;

import static com.hotfixs.thinkinginjava.common.Print.print;

import java.lang.reflect.InvocationTargetException;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;

/**
 * @author Junwei Wang (i.junwei.wang@gmail.com)
 */
class SetType {
    int i;

    public SetType(int n) {
        i = n;
    }

    @Override
    public boolean equals(Object obj) {
        return obj instanceof SetType && ((SetType) obj).i == i;
    }

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

    @Override
    public String toString() {
        return Integer.toString(i);
    }
}

class HashType extends SetType {
    public HashType(int n) {
        super(n);
    }

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

class TreeType extends SetType implements Comparable<TreeType> {

    public TreeType(int n) {
        super(n);
    }

    @Override
    public int compareTo(TreeType o) {
        return (o.i < i) ? -1 : (o.i == i ? 0 : 1);
    }
}

public class TypesForSets {
    static <T> Set<T> fill(Set<T> set, Class<T> type) {
        try {
            for (int i = 0; i < 10; i++) {
                set.add(type.getConstructor(int.class).newInstance(i));
            }
        } catch (InstantiationException | InvocationTargetException
                | IllegalAccessException | NoSuchMethodException e) {
            throw new RuntimeException(e);
        }

        return set;
    }

    static <T> void test(Set<T> set, Class<T> type) {
        fill(set, type);
        fill(set, type);
        fill(set, type);
        print(set);
    }

    public static void main(String[] args) {
        test(new HashSet<>(), HashType.class);
        test(new LinkedHashSet<>(), HashType.class);
        test(new TreeSet<>(), TreeType.class);

        test(new HashSet<>(), SetType.class);
        test(new HashSet<>(), TreeType.class);
        test(new LinkedHashSet<>(), SetType.class);
        test(new LinkedHashSet<>(), TreeType.class);

        try {
            test(new TreeSet<>(), SetType.class);
        } catch (Exception e) {
            print(e.getMessage());
        }

        try {
            test(new TreeSet<>(), HashType.class);
        } catch (Exception e) {
            print(e.getMessage());
        }
    }
}