text:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="AndroidLayouts">
    <shared>
      <config>
        <devices>
          <device id="Nexus 5" />
        </devices>
      </config>
    </shared>
    <layouts>
      <layout url="file://$PROJECT_DIR$/res/layout/title.xml">
        <config>
          <theme>@android:style/Theme.Material.Light</theme>
        </config>
      </layout>
    </layouts>
  </component>
  <component name="AndroidLogFilters">
    <option name="TOOL_WINDOW_CONFIGURED_FILTER" value="Show only selected application" />
  </component>
  <component name="ChangeListManager">
    <list default="true" id="072ab4d1-e4bb-4995-b827-b5efb4fc1354" name="Default" comment="">
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/res/drawable/missions.png" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/res/drawable/police.png" />
      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/res/drawable/profile.png" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/res/layout/main.xml" afterPath="$PROJECT_DIR$/res/layout/main.xml" />
      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/res/values/strings.xml" afterPath="$PROJECT_DIR$/res/values/strings.xml" />
    </list>
    <ignored path="WeLoveThisCity.iws" />
    <ignored path=".idea/workspace.xml" />
    <ignored path="$PROJECT_DIR$/out/" />
    <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="CreatePatchCommitExecutor">
    <option name="PATCH_PATH" value="" />
  </component>
  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
  <component name="FavoritesManager">
    <favorites_list name="WeLoveThisCity" />
  </component>
  <component name="FileEditorManager">
    <leaf>
      <file leaf-file-name="WeLoveThisCity.java" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/src/com/krellthehuman/welovethiscity/WeLoveThisCity.java">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="15" column="39" selection-start-line="15" selection-start-column="39" selection-end-line="15" selection-end-column="39" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="main.xml" pinned="false" current-in-tab="true">
        <entry file="file://$PROJECT_DIR$/res/layout/main.xml">
          <provider selected="true" editor-type-id="android-designer">
            <state />
          </provider>
          <provider editor-type-id="text-editor">
            <state vertical-scroll-proportion="15.196078">
              <caret line="9" column="44" selection-start-line="9" selection-start-column="44" selection-end-line="9" selection-end-column="44" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="missions.xml" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/res/layout/missions.xml">
          <provider editor-type-id="android-designer">
            <state />
          </provider>
          <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>
      </file>
      <file leaf-file-name="profile.xml" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/res/layout/profile.xml">
          <provider editor-type-id="android-designer">
            <state />
          </provider>
          <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>
      </file>
      <file leaf-file-name="police.xml" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/res/layout/police.xml">
          <provider editor-type-id="android-designer">
            <state />
          </provider>
          <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>
      </file>
      <file leaf-file-name="addinfo.xml" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/res/layout/addinfo.xml">
          <provider editor-type-id="android-designer">
            <state />
          </provider>
          <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>
      </file>
      <file leaf-file-name="title.xml" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/res/layout/title.xml">
          <provider editor-type-id="android-designer">
            <state />
          </provider>
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="-2.4375">
              <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
    </leaf>
  </component>
  <component name="Git.Settings">
    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
  </component>
  <component name="GradleLocalSettings">
    <option name="externalProjectsViewState">
      <projects_view />
    </option>
  </component>
  <component name="IdeDocumentHistory">
    <option name="CHANGED_PATHS">
      <list>
        <option value="$PROJECT_DIR$/AndroidManifest.xml" />
        <option value="$PROJECT_DIR$/res/layout/title.xml" />
        <option value="$PROJECT_DIR$/src/com/krellthehuman/welovethiscity/WeLoveThisCity.java" />
        <option value="$PROJECT_DIR$/res/layout/main.xml" />
      </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="width" value="1920" />
    <option name="height" value="1200" />
  </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="ProjectPane">
        <subPane>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="WeLoveThisCity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="WeLoveThisCity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="welovethiscity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="WeLoveThisCity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="welovethiscity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="welovethiscity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="WeLoveThisCity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="welovethiscity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="res" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="WeLoveThisCity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="welovethiscity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="res" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="layout" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="WeLoveThisCity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="welovethiscity" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="res" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="drawable" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
        </subPane>
      </pane>
      <pane id="PackagesPane" />
      <pane id="Scope" />
      <pane id="Scratches" />
    </panes>
  </component>
  <component name="PropertiesComponent">
    <property name="aspect.path.notification.shown" value="true" />
    <property name="WebServerToolWindowFactoryState" value="false" />
    <property name="settings.editor.selected.configurable" value="preferences.sourceCode.XML" />
    <property name="settings.editor.splitter.proportion" value="0.2" />
  </component>
  <component name="RecentsManager">
    <key name="CopyFile.RECENT_KEYS">
      <recent name="$PROJECT_DIR$/res/drawable" />
      <recent name="$PROJECT_DIR$/res/layout" />
    </key>
  </component>
  <component name="RunManager" selected="Android Application.Galaxy S6 edge+">
    <configuration default="true" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
      <module name="" />
      <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
      <option name="PROGRAM_PARAMETERS" />
      <method />
    </configuration>
    <configuration default="true" type="AndroidRunConfigurationType" factoryName="Android Application">
      <module name="" />
      <option name="ACTIVITY_CLASS" value="" />
      <option name="MODE" value="default_activity" />
      <option name="DEPLOY" value="true" />
      <option name="ARTIFACT_NAME" value="" />
      <option name="TARGET_SELECTION_MODE" value="EMULATOR" />
      <option name="USE_LAST_SELECTED_DEVICE" value="false" />
      <option name="PREFERRED_AVD" value="" />
      <option name="USE_COMMAND_LINE" value="true" />
      <option name="COMMAND_LINE" value="" />
      <option name="WIPE_USER_DATA" value="false" />
      <option name="DISABLE_BOOT_ANIMATION" value="false" />
      <option name="NETWORK_SPEED" value="full" />
      <option name="NETWORK_LATENCY" value="none" />
      <option name="CLEAR_LOGCAT" value="false" />
      <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
      <option name="FILTER_LOGCAT_AUTOMATICALLY" value="true" />
      <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="0" />
      <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
      <option name="SELECTED_CLOUD_DEVICE_CONFIGURATION_ID" value="0" />
      <option name="SELECTED_CLOUD_DEVICE_PROJECT_ID" value="" />
      <option name="IS_VALID_CLOUD_MATRIX_SELECTION" value="false" />
      <option name="INVALID_CLOUD_MATRIX_SELECTION_ERROR" value="" />
      <option name="IS_VALID_CLOUD_DEVICE_SELECTION" value="false" />
      <option name="INVALID_CLOUD_DEVICE_SELECTION_ERROR" value="" />
      <option name="CLOUD_DEVICE_SERIAL_NUMBER" value="" />
      <method />
    </configuration>
    <configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests">
      <module name="" />
      <option name="TESTING_TYPE" value="0" />
      <option name="INSTRUMENTATION_RUNNER_CLASS" value="" />
      <option name="METHOD_NAME" value="" />
      <option name="CLASS_NAME" value="" />
      <option name="PACKAGE_NAME" value="" />
      <option name="TARGET_SELECTION_MODE" value="EMULATOR" />
      <option name="USE_LAST_SELECTED_DEVICE" value="false" />
      <option name="PREFERRED_AVD" value="" />
      <option name="USE_COMMAND_LINE" value="true" />
      <option name="COMMAND_LINE" value="" />
      <option name="WIPE_USER_DATA" value="false" />
      <option name="DISABLE_BOOT_ANIMATION" value="false" />
      <option name="NETWORK_SPEED" value="full" />
      <option name="NETWORK_LATENCY" value="none" />
      <option name="CLEAR_LOGCAT" value="false" />
      <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
      <option name="FILTER_LOGCAT_AUTOMATICALLY" value="true" />
      <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="0" />
      <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
      <option name="SELECTED_CLOUD_DEVICE_CONFIGURATION_ID" value="0" />
      <option name="SELECTED_CLOUD_DEVICE_PROJECT_ID" value="" />
      <option name="IS_VALID_CLOUD_MATRIX_SELECTION" value="false" />
      <option name="INVALID_CLOUD_MATRIX_SELECTION_ERROR" value="" />
      <option name="IS_VALID_CLOUD_DEVICE_SELECTION" value="false" />
      <option name="INVALID_CLOUD_DEVICE_SELECTION_ERROR" value="" />
      <option name="CLOUD_DEVICE_SERIAL_NUMBER" value="" />
      <method />
    </configuration>
    <configuration default="true" type="Applet" factoryName="Applet">
      <option name="HTML_USED" value="false" />
      <option name="WIDTH" value="400" />
      <option name="HEIGHT" value="300" />
      <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
      <module />
      <method />
    </configuration>
    <configuration default="true" type="Application" factoryName="Application">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <option name="MAIN_CLASS_NAME" />
      <option name="VM_PARAMETERS" />
      <option name="PROGRAM_PARAMETERS" />
      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
      <option name="ALTERNATIVE_JRE_PATH" />
      <option name="ENABLE_SWING_INSPECTOR" value="false" />
      <option name="ENV_VARIABLES" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <module name="" />
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="ArquillianJUnit" factoryName="">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <module name="" />
      <option name="arquillianRunConfiguration">
        <value>
          <option name="containerStateName" value="" />
        </value>
      </option>
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
      <option name="ALTERNATIVE_JRE_PATH" />
      <option name="PACKAGE_NAME" />
      <option name="MAIN_CLASS_NAME" />
      <option name="METHOD_NAME" />
      <option name="TEST_OBJECT" value="class" />
      <option name="VM_PARAMETERS" />
      <option name="PARAMETERS" />
      <option name="WORKING_DIRECTORY" />
      <option name="ENV_VARIABLES" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <option name="TEST_SEARCH_SCOPE">
        <value defaultName="singleModule" />
      </option>
      <envs />
      <patterns />
      <method />
    </configuration>
    <configuration default="true" type="ArquillianTestNG" factoryName="">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <module name="" />
      <option name="arquillianRunConfiguration">
        <value>
          <option name="containerStateName" value="" />
        </value>
      </option>
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
      <option name="ALTERNATIVE_JRE_PATH" />
      <option name="SUITE_NAME" />
      <option name="PACKAGE_NAME" />
      <option name="MAIN_CLASS_NAME" />
      <option name="METHOD_NAME" />
      <option name="GROUP_NAME" />
      <option name="TEST_OBJECT" value="CLASS" />
      <option name="VM_PARAMETERS" />
      <option name="PARAMETERS" />
      <option name="WORKING_DIRECTORY" />
      <option name="OUTPUT_DIRECTORY" />
      <option name="ANNOTATION_TYPE" />
      <option name="ENV_VARIABLES" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <option name="TEST_SEARCH_SCOPE">
        <value defaultName="singleModule" />
      </option>
      <option name="USE_DEFAULT_REPORTERS" value="false" />
      <option name="PROPERTIES_FILE" />
      <envs />
      <properties />
      <listeners />
      <method />
    </configuration>
    <configuration default="true" type="CucumberJavaRunConfigurationType" factoryName="Cucumber java">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <option name="myFilePath" />
      <option name="GLUE" />
      <option name="myNameFilter" />
      <option name="myGeneratedName" />
      <option name="MAIN_CLASS_NAME" />
      <option name="VM_PARAMETERS" />
      <option name="PROGRAM_PARAMETERS" />
      <option name="WORKING_DIRECTORY" />
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
      <option name="ALTERNATIVE_JRE_PATH" />
      <option name="ENABLE_SWING_INSPECTOR" value="false" />
      <option name="ENV_VARIABLES" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <module name="" />
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="FlashRunConfigurationType" factoryName="Flash App">
      <option name="BCName" value="" />
      <option name="IOSSimulatorSdkPath" value="" />
      <option name="adlOptions" value="" />
      <option name="airProgramParameters" value="" />
      <option name="appDescriptorForEmulator" value="Android" />
      <option name="debugTransport" value="USB" />
      <option name="debuggerSdkRaw" value="BC SDK" />
      <option name="emulator" value="NexusOne" />
      <option name="emulatorAdlOptions" value="" />
      <option name="fastPackaging" value="true" />
      <option name="fullScreenHeight" value="0" />
      <option name="fullScreenWidth" value="0" />
      <option name="launchUrl" value="false" />
      <option name="launcherParameters">
        <LauncherParameters>
          <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
          <option name="launcherType" value="OSDefault" />
          <option name="newPlayerInstance" value="false" />
          <option name="playerPath" value="/Applications/Flash Player Debugger.app" />
        </LauncherParameters>
      </option>
      <option name="mobileRunTarget" value="Emulator" />
      <option name="moduleName" value="" />
      <option name="overriddenMainClass" value="" />
      <option name="overriddenOutputFileName" value="" />
      <option name="overrideMainClass" value="false" />
      <option name="runTrusted" value="true" />
      <option name="screenDpi" value="0" />
      <option name="screenHeight" value="0" />
      <option name="screenWidth" value="0" />
      <option name="url" value="http://" />
      <option name="usbDebugPort" value="7936" />
      <method />
    </configuration>
    <configuration default="true" type="FlexUnitRunConfigurationType" factoryName="FlexUnit" appDescriptorForEmulator="Android" class_name="" emulatorAdlOptions="" method_name="" package_name="" scope="Class">
      <option name="BCName" value="" />
      <option name="launcherParameters">
        <LauncherParameters>
          <option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
          <option name="launcherType" value="OSDefault" />
          <option name="newPlayerInstance" value="false" />
          <option name="playerPath" value="/Applications/Flash Player Debugger.app" />
        </LauncherParameters>
      </option>
      <option name="moduleName" value="" />
      <option name="trusted" value="true" />
      <method />
    </configuration>
    <configuration default="true" type="GradleRunConfiguration" factoryName="Gradle">
      <ExternalSystemSettings>
        <option name="executionName" />
        <option name="externalProjectPath" />
        <option name="externalSystemIdString" value="GRADLE" />
        <option name="scriptParameters" />
        <option name="taskDescriptions">
          <list />
        </option>
        <option name="taskNames">
          <list />
        </option>
        <option name="vmOptions" />
      </ExternalSystemSettings>
      <method />
    </configuration>
    <configuration default="true" type="GrailsRunConfigurationType" factoryName="Grails">
      <module name="" />
      <setting name="vmparams" value="" />
      <setting name="cmdLine" value="run-app" />
      <setting name="depsClasspath" value="false" />
      <setting name="passParentEnv" value="true" />
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <setting name="launchBrowser" value="false" />
      <method />
    </configuration>
    <configuration default="true" type="JUnit" factoryName="JUnit">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <module name="" />
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
      <option name="ALTERNATIVE_JRE_PATH" />
      <option name="PACKAGE_NAME" />
      <option name="MAIN_CLASS_NAME" />
      <option name="METHOD_NAME" />
      <option name="TEST_OBJECT" value="class" />
      <option name="VM_PARAMETERS" value="-ea" />
      <option name="PARAMETERS" />
      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
      <option name="ENV_VARIABLES" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <option name="TEST_SEARCH_SCOPE">
        <value defaultName="singleModule" />
      </option>
      <envs />
      <patterns />
      <method />
    </configuration>
    <configuration default="true" type="JUnitTestDiscovery" factoryName="JUnit Test Discovery" changeList="All">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <module name="" />
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
      <option name="ALTERNATIVE_JRE_PATH" />
      <option name="PACKAGE_NAME" />
      <option name="MAIN_CLASS_NAME" />
      <option name="METHOD_NAME" />
      <option name="TEST_OBJECT" value="class" />
      <option name="VM_PARAMETERS" />
      <option name="PARAMETERS" />
      <option name="WORKING_DIRECTORY" />
      <option name="ENV_VARIABLES" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <option name="TEST_SEARCH_SCOPE">
        <value defaultName="singleModule" />
      </option>
      <envs />
      <patterns />
      <method />
    </configuration>
    <configuration default="true" type="JarApplication" factoryName="JAR Application">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="Java Scratch" factoryName="Java Scratch">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <option name="SCRATCH_FILE_ID" value="0" />
      <option name="MAIN_CLASS_NAME" />
      <option name="VM_PARAMETERS" />
      <option name="PROGRAM_PARAMETERS" />
      <option name="WORKING_DIRECTORY" />
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
      <option name="ALTERNATIVE_JRE_PATH" />
      <option name="ENABLE_SWING_INSPECTOR" value="false" />
      <option name="ENV_VARIABLES" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <module name="" />
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
      <method />
    </configuration>
    <configuration default="true" type="JetRunConfigurationType" factoryName="Kotlin">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <option name="MAIN_CLASS_NAME" />
      <option name="VM_PARAMETERS" />
      <option name="PROGRAM_PARAMETERS" />
      <option name="WORKING_DIRECTORY" />
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
      <option name="ALTERNATIVE_JRE_PATH" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <module name="welovethiscity" />
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="KotlinStandaloneScriptRunConfigurationType" factoryName="Kotlin script">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <option name="filePath" />
      <option name="vmParameters" />
      <option name="alternativeJrePath" />
      <option name="programParameters" />
      <option name="passParentEnvs" value="true" />
      <option name="workingDirectory" />
      <option name="isAlternativeJrePathEnabled" value="false" />
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="Remote" factoryName="Remote">
      <option name="USE_SOCKET_TRANSPORT" value="true" />
      <option name="SERVER_MODE" value="false" />
      <option name="SHMEM_ADDRESS" value="javadebug" />
      <option name="HOST" value="localhost" />
      <option name="PORT" value="5005" />
      <method />
    </configuration>
    <configuration default="true" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <module name="" />
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="TestNG" factoryName="TestNG">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <module name="" />
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
      <option name="ALTERNATIVE_JRE_PATH" />
      <option name="SUITE_NAME" />
      <option name="PACKAGE_NAME" />
      <option name="MAIN_CLASS_NAME" />
      <option name="METHOD_NAME" />
      <option name="GROUP_NAME" />
      <option name="TEST_OBJECT" value="CLASS" />
      <option name="VM_PARAMETERS" value="-ea" />
      <option name="PARAMETERS" />
      <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
      <option name="OUTPUT_DIRECTORY" />
      <option name="ANNOTATION_TYPE" />
      <option name="ENV_VARIABLES" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <option name="TEST_SEARCH_SCOPE">
        <value defaultName="singleModule" />
      </option>
      <option name="USE_DEFAULT_REPORTERS" value="false" />
      <option name="PROPERTIES_FILE" />
      <envs />
      <properties />
      <listeners />
      <method />
    </configuration>
    <configuration default="true" type="TestNGTestDiscovery" factoryName="TestNG Test Discovery" changeList="All">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <module name="" />
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
      <option name="ALTERNATIVE_JRE_PATH" />
      <option name="SUITE_NAME" />
      <option name="PACKAGE_NAME" />
      <option name="MAIN_CLASS_NAME" />
      <option name="METHOD_NAME" />
      <option name="GROUP_NAME" />
      <option name="TEST_OBJECT" value="CLASS" />
      <option name="VM_PARAMETERS" />
      <option name="PARAMETERS" />
      <option name="WORKING_DIRECTORY" />
      <option name="OUTPUT_DIRECTORY" />
      <option name="ANNOTATION_TYPE" />
      <option name="ENV_VARIABLES" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <option name="TEST_SEARCH_SCOPE">
        <value defaultName="singleModule" />
      </option>
      <option name="USE_DEFAULT_REPORTERS" value="false" />
      <option name="PROPERTIES_FILE" />
      <envs />
      <properties />
      <listeners />
      <method />
    </configuration>
    <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
      <method />
    </configuration>
    <configuration default="true" type="js.build_tools.npm" factoryName="npm">
      <command value="run-script" />
      <scripts />
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="osgi.bnd.run" factoryName="Run Launcher">
      <method />
    </configuration>
    <configuration default="true" type="osgi.bnd.run" factoryName="Test Launcher (JUnit)">
      <method />
    </configuration>
    <configuration default="false" name="welovethiscity" type="AndroidRunConfigurationType" factoryName="Android Application">
      <module name="welovethiscity" />
      <option name="ACTIVITY_CLASS" value="com.krellthehuman.welovethiscity.WeLoveThisCity" />
      <option name="MODE" value="specific_activity" />
      <option name="DEPLOY" value="true" />
      <option name="ARTIFACT_NAME" value="" />
      <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
      <option name="USE_LAST_SELECTED_DEVICE" value="false" />
      <option name="PREFERRED_AVD" value="" />
      <option name="USE_COMMAND_LINE" value="true" />
      <option name="COMMAND_LINE" value="" />
      <option name="WIPE_USER_DATA" value="false" />
      <option name="DISABLE_BOOT_ANIMATION" value="false" />
      <option name="NETWORK_SPEED" value="full" />
      <option name="NETWORK_LATENCY" value="none" />
      <option name="CLEAR_LOGCAT" value="false" />
      <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
      <option name="FILTER_LOGCAT_AUTOMATICALLY" value="true" />
      <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
      <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="Please select a project..." />
      <option name="SELECTED_CLOUD_DEVICE_CONFIGURATION_ID" value="-1" />
      <option name="SELECTED_CLOUD_DEVICE_PROJECT_ID" value="Please select a project..." />
      <option name="IS_VALID_CLOUD_MATRIX_SELECTION" value="false" />
      <option name="INVALID_CLOUD_MATRIX_SELECTION_ERROR" value="Cloud configuration not specified" />
      <option name="IS_VALID_CLOUD_DEVICE_SELECTION" value="false" />
      <option name="INVALID_CLOUD_DEVICE_SELECTION_ERROR" value="Cloud configuration not specified" />
      <option name="CLOUD_DEVICE_SERIAL_NUMBER" value="" />
      <method />
    </configuration>
    <configuration default="false" name="Galaxy S6 edge+" type="AndroidRunConfigurationType" factoryName="Android Application">
      <module name="welovethiscity" />
      <option name="ACTIVITY_CLASS" value="" />
      <option name="MODE" value="default_activity" />
      <option name="DEPLOY" value="true" />
      <option name="ARTIFACT_NAME" value="" />
      <option name="TARGET_SELECTION_MODE" value="USB_DEVICE" />
      <option name="USE_LAST_SELECTED_DEVICE" value="false" />
      <option name="PREFERRED_AVD" value="" />
      <option name="USE_COMMAND_LINE" value="true" />
      <option name="COMMAND_LINE" value="" />
      <option name="WIPE_USER_DATA" value="false" />
      <option name="DISABLE_BOOT_ANIMATION" value="false" />
      <option name="NETWORK_SPEED" value="full" />
      <option name="NETWORK_LATENCY" value="none" />
      <option name="CLEAR_LOGCAT" value="false" />
      <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
      <option name="FILTER_LOGCAT_AUTOMATICALLY" value="true" />
      <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
      <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="Please select a project..." />
      <option name="SELECTED_CLOUD_DEVICE_CONFIGURATION_ID" value="-1" />
      <option name="SELECTED_CLOUD_DEVICE_PROJECT_ID" value="Please select a project..." />
      <option name="IS_VALID_CLOUD_MATRIX_SELECTION" value="false" />
      <option name="INVALID_CLOUD_MATRIX_SELECTION_ERROR" value="Cloud configuration not specified" />
      <option name="IS_VALID_CLOUD_DEVICE_SELECTION" value="false" />
      <option name="INVALID_CLOUD_DEVICE_SELECTION_ERROR" value="Cloud configuration not specified" />
      <option name="CLOUD_DEVICE_SERIAL_NUMBER" value="" />
      <method />
    </configuration>
    <list size="2">
      <item index="0" class="java.lang.String" itemvalue="Android Application.welovethiscity" />
      <item index="1" class="java.lang.String" itemvalue="Android Application.Galaxy S6 edge+" />
    </list>
  </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="072ab4d1-e4bb-4995-b827-b5efb4fc1354" name="Default" comment="" />
      <created>1455003667285</created>
      <option name="number" value="Default" />
      <updated>1455003667285</updated>
      <workItem from="1455003673853" duration="19237000" />
    </task>
    <task id="LOCAL-00001" summary="Merge branch 'master' of https://github.com/KrellTheHuman/welovethiscity

# Conflicts:
#	.gitignore
">
      <created>1455341321550</created>
      <option name="number" value="00001" />
      <option name="project" value="LOCAL" />
      <updated>1455341321550</updated>
    </task>
    <task id="LOCAL-00002" summary="two views wired up with other placeholder views created">
      <created>1455410713248</created>
      <option name="number" value="00002" />
      <option name="project" value="LOCAL" />
      <updated>1455410713248</updated>
    </task>
    <option name="localTasksCounter" value="3" />
    <servers />
  </component>
  <component name="TimeTrackingManager">
    <option name="totallyTimeSpent" value="19237000" />
  </component>
  <component name="ToolWindowManager">
    <frame x="0" y="0" width="1920" height="1200" extended-state="0" />
    <editor active="true" />
    <layout>
      <window_info id="Palette" 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="-1" 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="6" side_tool="false" content_ui="tabs" />
      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32957503" sideWeight="0.48125" order="-1" side_tool="false" content_ui="tabs" />
      <window_info id="Build Variants" 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="-1" side_tool="true" content_ui="tabs" />
      <window_info id="Palette	" 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="-1" side_tool="false" content_ui="tabs" />
      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32957503" sideWeight="0.5520833" order="-1" side_tool="true" content_ui="tabs" />
      <window_info id="Maven Projects" 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="-1" side_tool="false" content_ui="tabs" />
      <window_info id="Preview" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3296875" sideWeight="0.5" order="-1" side_tool="false" 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.33" sideWeight="0.5" order="-1" 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.32870772" sideWeight="0.43958333" order="2" 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.32920355" sideWeight="0.4978701" order="-1" side_tool="false" content_ui="tabs" />
      <window_info id="Captures" 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="-1" side_tool="false" content_ui="tabs" />
      <window_info id="Android" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32957503" sideWeight="0.44791666" order="-1" side_tool="false" content_ui="tabs" />
      <window_info id="Designer" 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="-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.24427083" sideWeight="0.5" order="0" 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="-1" 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="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="UI Designer" 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="-1" 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="-1" side_tool="true" content_ui="tabs" />
      <window_info id="Debug" 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="3" 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="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="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="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" show_stripe_button="true" weight="0.4" 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="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="5" side_tool="false" content_ui="tabs" />
    </layout>
  </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="VcsManagerConfiguration">
    <MESSAGE value="Merge branch 'master' of https://github.com/KrellTheHuman/welovethiscity

# Conflicts:
#	.gitignore
" />
    <MESSAGE value="two views wired up with other placeholder views created" />
    <option name="LAST_COMMIT_MESSAGE" value="two views wired up with other placeholder views created" />
  </component>
  <component name="XDebuggerManager">
    <breakpoint-manager />
    <watches-manager />
  </component>
  <component name="antWorkspaceConfiguration">
    <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
    <option name="FILTER_TARGETS" value="false" />
  </component>
  <component name="editorHistoryManager">
    <entry file="file://$PROJECT_DIR$/.gitignore">
      <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$/AndroidManifest.xml">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.20804438">
          <caret line="10" column="81" selection-start-line="10" selection-start-column="81" selection-end-line="10" selection-end-column="81" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/res/layout/profile.xml">
      <provider editor-type-id="android-designer">
        <state />
      </provider>
      <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$/res/layout/police.xml">
      <provider editor-type-id="android-designer">
        <state />
      </provider>
      <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$/res/layout/addinfo.xml">
      <provider editor-type-id="android-designer">
        <state />
      </provider>
      <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$/res/layout/missions.xml">
      <provider editor-type-id="android-designer">
        <state />
      </provider>
      <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$/src/com/krellthehuman/welovethiscity/WeLoveThisCity.java">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="15" column="39" selection-start-line="15" selection-start-column="39" selection-end-line="15" selection-end-column="39" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/res/layout/title.xml">
      <provider editor-type-id="android-designer">
        <state />
      </provider>
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="-2.4375">
          <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/res/layout/main.xml">
      <provider selected="true" editor-type-id="android-designer">
        <state />
      </provider>
      <provider editor-type-id="text-editor">
        <state vertical-scroll-proportion="15.196078">
          <caret line="9" column="44" selection-start-line="9" selection-start-column="44" selection-end-line="9" selection-end-column="44" />
          <folding />
        </state>
      </provider>
    </entry>
  </component>
</project>


text:
/*
 *
 * jqTransform
 * by mathieu vilaplana mvilaplana@dfc-e.com
 * Designer ghyslain armand garmand@dfc-e.com
 *
 *
 * Version 1.0 25.09.08
 * Version 1.1 06.08.09
 * Add event click on Checkbox and Radio
 * Auto calculate the size of a select element
 * Can now, disabled the elements
 * Correct bug in ff if click on select (overflow=hidden)
 * No need any more preloading !!
 *
 ******************************************** */

(function($){
	var defaultOptions = {preloadImg:true};
	var jqTransformImgPreloaded = false;

	var jqTransformPreloadHoverFocusImg = function(strImgUrl) {
		//guillemets to remove for ie
		strImgUrl = strImgUrl.replace(/^url\((.*)\)/,'$1').replace(/^\"(.*)\"$/,'$1');
		var imgHover = new Image();
		imgHover.src = strImgUrl.replace(/\.([a-zA-Z]*)$/,'-hover.$1');
		var imgFocus = new Image();
		imgFocus.src = strImgUrl.replace(/\.([a-zA-Z]*)$/,'-focus.$1');
	};

	/***************************
	  Labels
	***************************/
	var jqTransformGetLabel = function(objfield){
		var selfForm = $(objfield.get(0).form);
		var oLabel = objfield.next();
		if(!oLabel.is('label')) {
			oLabel = objfield.prev();
			if(oLabel.is('label')){
				var inputname = objfield.attr('id');
				if(inputname){
					oLabel = selfForm.find('label[for="'+inputname+'"]');
				}
			}
		}
		if(oLabel.is('label')){return oLabel.css('cursor','pointer');}
		return false;
	};

	/* Hide all open selects */
	var jqTransformHideSelect = function(oTarget){
		var ulVisible = $('.jqTransformSelectWrapper ul:visible');
		ulVisible.each(function(){
			var oSelect = $(this).parents(".jqTransformSelectWrapper:first").find("select").get(0);
			//do not hide if click on the label object associated to the select
			if( !(oTarget && oSelect.oLabel && oSelect.oLabel.get(0) == oTarget.get(0)) ){$(this).hide();}
		});
	};
	/* Check for an external click */
	var jqTransformCheckExternalClick = function(event) {
		if ($(event.target).parents('.jqTransformSelectWrapper').length === 0) { jqTransformHideSelect($(event.target)); }
	};

	/* Apply document listener */
	var jqTransformAddDocumentListener = function (){
		$(document).mousedown(jqTransformCheckExternalClick);
	};

	/* Add a new handler for the reset action */
	var jqTransformReset = function(f){
		var sel;
		$('.jqTransformSelectWrapper select', f).each(function(){sel = (this.selectedIndex<0) ? 0 : this.selectedIndex; $('ul', $(this).parent()).each(function(){$('a:eq('+ sel +')', this).click();});});
		$('a.jqTransformCheckbox, a.jqTransformRadio', f).removeClass('jqTransformChecked');
		$('input:checkbox, input:radio', f).each(function(){if(this.checked){$('a', $(this).parent()).addClass('jqTransformChecked');}});
	};

	/***************************
	  Check Boxes
	 ***************************/
	$.fn.jqTransCheckBox = function(){
		return this.each(function(){
			if($(this).hasClass('jqTransformHidden')) {return;}

			var $input = $(this);
			var inputSelf = this;

			//set the click on the label
			var oLabel=jqTransformGetLabel($input);
			oLabel && oLabel.click(function(){aLink.trigger('click');});

			var aLink = $('');
			//wrap and add the link
			$input.addClass('jqTransformHidden').wrap('').parent().prepend(aLink);
			//on change, change the class of the link
			$input.change(function(){
				this.checked && aLink.addClass('jqTransformChecked') || aLink.removeClass('jqTransformChecked');
				return true;
			});
			// Click Handler, trigger the click and change event on the input
			aLink.click(function(){
				//do nothing if the original input is disabled
				if($input.attr('disabled')){return false;}
				//trigger the envents on the input object
				$input.trigger('click').trigger("change");
				return false;
			});

			// set the default state
			this.checked && aLink.addClass('jqTransformChecked');
		});
	};
	/***************************
	  Radio Buttons
	 ***************************/
	$.fn.jqTransRadio = function(){
		return this.each(function(){
			if($(this).hasClass('jqTransformHidden')) {return;}
			var $input = $(this);
			var inputSelf = this;
			var $v = $(inputSelf);

			oLabel = jqTransformGetLabel($input);
			oLabel && oLabel.click(function(){aLink.trigger('click');});

			var aLink = $('');

			$input.addClass('jqTransformHidden').wrap('').parent().prepend(aLink);

			$input.change(function(){
				inputSelf.checked && aLink.addClass('jqTransformChecked') || aLink.removeClass('jqTransformChecked');
				//单选题开放框自动清除
				var self_id = inputSelf.id;
				var oplist = self_id.split('_');
				if (oplist.length==2) {
					var option_id = oplist[1];
					var option = get_option(option_id);
					var question = get_question(option.qid);
					if (question.disp_type==QUESTION_TYPE_SINGLE) {
						$('#qid_'+question.id).find('textarea').each(function(i, e){
							var optionid = e.id.replace('option_open_', '');
							if (option_id!=optionid) {
								if(!($(e).attr("readonly")||$(e).attr("disabled"))){
									$(e).val('');
								}
							}
						});
					}
				}
				return true;
			});
			// Click Handler
			aLink.click(function(){
				if($input.attr('disabled')){return false;}
				$input.trigger('click').trigger('change');

				// uncheck all others of same name input radio elements
				$('input[name="'+$input.attr('name')+'"]',inputSelf.form).not($input).each(function(){
					$(this).attr('type')=='radio' && $(this).trigger('change');
				});

				return false;
			});
			// set the default state
			inputSelf.checked && aLink.addClass('jqTransformChecked');
		});
	};

	$.fn.jqTransform = function(options){
		var opt = $.extend({},defaultOptions,options);

		/* each form */
		 return this.each(function(){
			var selfForm = $(this);
			if(selfForm.hasClass('jqtransformdone')) {return;}
			selfForm.addClass('jqtransformdone');
			//$('input:submit, input:reset, input[type="button"]', this).jqTransInputButton();
			//$('input:text, input:password', this).jqTransInputText();
			$('input:checkbox', this).jqTransCheckBox();
			$('input:radio', this).jqTransRadio();
			//$('textarea', this).jqTransTextarea();

			//if( $('select', this).jqTransSelect().length > 0 ){jqTransformAddDocumentListener();}
			selfForm.bind('reset',function(){var action = function(){jqTransformReset(this);}; window.setTimeout(action, 10);});

		}); /* End Form each */

	};/* End the Plugin */

})(jQuery);

redpajama_set_name: RedPajamaGithub


text: Code samples for all recipes found in the Packt Publishing Meteor Cookbook


text:
package com.sleepycat.je.recovery;

import java.util.HashSet;

import com.sleepycat.bind.tuple.IntegerBinding;
import com.sleepycat.je.CheckpointConfig;
import com.sleepycat.je.Database;
import com.sleepycat.je.DatabaseConfig;
import com.sleepycat.je.DatabaseEntry;
import com.sleepycat.je.DatabaseException;
import com.sleepycat.je.DbInternal;
import com.sleepycat.je.EnvironmentConfig;
import com.sleepycat.je.OperationStatus;
import com.sleepycat.je.config.EnvironmentParams;
import com.sleepycat.je.log.Trace;
import com.sleepycat.je.recovery.stepwise.TestData;
import com.sleepycat.je.util.TestUtils;

public class CheckSplitAuntTest extends CheckBase {

    private static final String DB_NAME = "simpleDB";

    /**
     */
    public void testSplitAunt()
        throws Throwable {

        EnvironmentConfig envConfig = TestUtils.initEnvConfig();
        turnOffEnvDaemons(envConfig);
        envConfig.setConfigParam(EnvironmentParams.NODE_MAX.getName(),
                                 "4");
        envConfig.setAllowCreate(true);
        envConfig.setTransactional(true);

        DatabaseConfig dbConfig = new DatabaseConfig();
        dbConfig.setAllowCreate(true);
        dbConfig.setTransactional(true);

        EnvironmentConfig restartConfig = TestUtils.initEnvConfig();
        turnOffEnvDaemons(envConfig);
        envConfig.setConfigParam(EnvironmentParams.NODE_MAX.getName(),
                                 "4");
        envConfig.setTransactional(true);

        testOneCase(DB_NAME,
                    envConfig,
                    dbConfig,
                    new TestGenerator(true){
                        void generateData(Database db)
                            throws DatabaseException {
                            setupSplitData(db);
                        }
                    },
                    restartConfig,
                    new DatabaseConfig());

        /*
         * Now run the test in a stepwise loop, truncate after each
         * log entry. We start the steps before the inserts, so the base
         * expected set is empty.
         */
        HashSet<TestData> currentExpected = new HashSet<TestData>();
        if (TestUtils.runLongTests()) {
            stepwiseLoop(DB_NAME, envConfig, dbConfig, currentExpected,  0);
        }
    }

    private void setupSplitData(Database db)
        throws DatabaseException {

        setStepwiseStart();

        int max = 12;

        DatabaseEntry key = new DatabaseEntry();
        DatabaseEntry data = new DatabaseEntry();

        /* Populate a tree so it grows to 3 levels, then checkpoint. */
        for (int i = 0; i < max; i ++) {
            IntegerBinding.intToEntry(i*10, key);
            IntegerBinding.intToEntry(i*10, data);
            assertEquals(OperationStatus.SUCCESS, db.put(null, key, data));
        }

        CheckpointConfig ckptConfig = new CheckpointConfig();
        Trace.trace(DbInternal.getEnvironmentImpl(env), "First sync");
        env.sync();

        Trace.trace(DbInternal.getEnvironmentImpl(env), "Second sync");
        env.sync();

        Trace.trace(DbInternal.getEnvironmentImpl(env), "Third sync");
        env.sync();

        Trace.trace(DbInternal.getEnvironmentImpl(env), "Fourth sync");
        env.sync();

        Trace.trace(DbInternal.getEnvironmentImpl(env), "Fifth sync");
        env.sync();

        Trace.trace(DbInternal.getEnvironmentImpl(env), "Sync6");
        env.sync();

        Trace.trace(DbInternal.getEnvironmentImpl(env), "After sync");

        /* Add a key to dirty the left hand branch. */
        IntegerBinding.intToEntry(5, key);
        IntegerBinding.intToEntry(5, data);
        assertEquals(OperationStatus.SUCCESS, db.put(null, key, data));
        Trace.trace
            (DbInternal.getEnvironmentImpl(env), "After single key insert");

        ckptConfig.setForce(true);
        ckptConfig.setMinimizeRecoveryTime(true);
        env.checkpoint(ckptConfig);

        Trace.trace(DbInternal.getEnvironmentImpl(env), "before split");

        /* Add enough keys to split the right hand branch. */
        for (int i = 51; i < 57; i ++) {
            IntegerBinding.intToEntry(i, key);
            IntegerBinding.intToEntry(i, data);
            assertEquals(OperationStatus.SUCCESS, db.put(null, key, data));
        }

        Trace.trace(DbInternal.getEnvironmentImpl(env), "after split");
    }
}


text:
<?php
/**
 * Template for displaying homepages
 * Template Name: Homepage
 *
 * @package ufund-wp
 */

get_header();

/**
 * determine main column size from actived sidebar
 */
$main_column_size = bootstrapBasicGetMainColumnSize();
?>

<?php get_sidebar('left'); ?>

The Ultimate Fundraising Experience™

							<img class="" src="<?php echo get_theme_file_uri( 'img/home-jumbotron-start.svg' );?>" alt="" title="" />

Start a Campaign

							<img class="" src="<?php echo get_theme_file_uri( 'img/home-jumbotron-find.svg' );?>" alt="" title="" />

Find a Campaign

                UFund is revolutionizing the fundraising world!

                UFund is bringing fundraising to the 21st century with an innovative way to raise funds for your organization or group. With our one-of-a-kind fundraising platform, we give your organization the power to sell, without any upfront costs or inventory. Your supporters can select from a multitude of products– all while allowing you to raise more money, faster!

								<img src="<?php echo get_theme_file_uri( 'img/img.png' );?>" alt="" title="" width="100%" height="100%" />

Organization Name

$88,888

										80% Complete

								<img src="<?php echo get_theme_file_uri( 'img/img.png' );?>" alt="" title="" width="100%" height="100%" />

Organization Name

$88,888

										20% Complete

								<img src="<?php echo get_theme_file_uri( 'img/img.png' );?>" alt="" title="" width="100%" height="100%" />

Organization Name

$88,888

										40% Complete

								<img src="<?php echo get_theme_file_uri( 'img/img.png' );?>" alt="" title="" width="100%" height="100%" />

Organization Name

$88,888

										60% Complete

How it Works

        	<img class="step-img" src="<?php echo get_theme_file_uri( 'img/home-howitworks-0.svg' );?>" alt="" title="" />

The group or organization will sign up online and receive an email confirmation. During the set up of the group's UFund website, the group's fundraising coordinator will provide names of the individuals fundraising, along with fundraising monetary goals and purpose. If the group or organization has a logo, we would like to include that on their UFund website as well. The reason for obtaining each individual's name is to credit them when a customer completes their purchase (the customer will be prompted to select who told them about the fundraiser). In certain circumstances, UFund will offer rewards for the person who sells the most during their group's fundraiser. When the group or organization provides a logo (optional) and identifies the purpose of the fundraiser, the end consumers are more likely to purchase products.

1

							<img class="step-img" src="<?php echo get_theme_file_uri( 'img/home-howitworks-1.svg' );?>" alt="" title="" />

Once an organization has signed up to utilize UFund, we will create an online store just for that organization or group. This website will be branded to look just as if it is that group's website. The group's website will keep track of how much the group has raised and will let everyone know with a tracker at the top of each page. Your organization receives a check for 25% of the total sales price! That's $25 out of every $100 sold.

2

							<img class="step-img" src="<?php echo get_theme_file_uri( 'img/home-howitworks-2.svg' );?>" alt="" title="" />

Once the group's UFund website is up and running, UFund will release the URL address to the organization. Then all of the organization's members will be asked to share that particular website with all of their friends and family via social media. The more people each member shares it with, the more money the group will raise.

3

							<img class="step-img" src="<?php echo get_theme_file_uri( 'img/home-howitworks-3.svg' );?>" alt="" title="" />

Each fundraiser lasts for 2 weeks (and can be extended for a week if the organization requests it). The fundraiser will then close, and UFund will give the group a detailed report on all purchases made, so your fundraising team can celebrate! At the time of checkout, each customer will provide their mailing address and their products will be shipped directly to them. UFund will take 100% of the work out of having to deliver any products!

4

							<img class="step-img" src="<?php echo get_theme_file_uri( 'img/home-howitworks-4.svg' );?>" alt="" title="" />

UFund will calculate the amount of funds raised and will distribute a check to the organization within 2-4 weeks of the fundraiser's last day. In certain circumstances, UFund will host a success party for the organization as well. If you have any questions, please contact us at info@UFundonline.com. UFund looks forward to working with your group or organization in the near future.

<?php get_sidebar('right'); ?>

<?php get_footer(); ?>


text:
// Copyright 2020 The Oppia Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS-IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/**
 * @fileoverview Frontend domain object factory for users.
 */

import { downgradeInjectable } from '@angular/upgrade/static';
import { Injectable } from '@angular/core';

import {
  LearnerExplorationSummary,
  LearnerExplorationSummaryBackendDict,
  LearnerExplorationSummaryObjectFactory
} from 'domain/summary/learner-exploration-summary-object.factory';

export interface UserProfileBackendDict {
  'username': string;
  'profile_is_of_current_user': boolean;
  'username_of_viewed_profile': string;
  'user_bio': string;
  'subject_interests': string[];
  'first_contribution_msec': number;
  'profile_picture_data_url': string;
  'user_impact_score': number;
  'is_already_subscribed': boolean;
  'is_user_visiting_own_profile': boolean;
  'created_exp_summary_dicts': LearnerExplorationSummaryBackendDict[];
  'edited_exp_summary_dicts': LearnerExplorationSummaryBackendDict[];
}

export class UserProfile {
  constructor(
    public username: string,
    public profileIsOfCurrentUser: boolean,
    public usernameOfViewedProfile: string,
    public userBio: string,
    public subjectInterests: string[],
    public firstContributionMsec: number,
    public profilePictureDataUrl: string,
    public userImpactScore: number,
    public isAlreadySubscribed: boolean,
    public isUserVisitingOwnProfile: boolean,
    public createdExpSummaries: LearnerExplorationSummary[],
    public editedExpSummaries: LearnerExplorationSummary[]
  ) {}
}

@Injectable({
  providedIn: 'root'
})
export class UserProfileObjectFactory {
  constructor(
    private learnerExplorationSummaryObjectFactory:
    LearnerExplorationSummaryObjectFactory) {}

  createFromBackendDict(backendDict: UserProfileBackendDict): UserProfile {
    return new UserProfile(
      backendDict.username,
      backendDict.profile_is_of_current_user,
      backendDict.username_of_viewed_profile,
      backendDict.user_bio,
      backendDict.subject_interests,
      backendDict.first_contribution_msec,
      backendDict.profile_picture_data_url,
      backendDict.user_impact_score,
      backendDict.is_already_subscribed,
      backendDict.is_user_visiting_own_profile,
      backendDict.created_exp_summary_dicts.map(
        dict => this.learnerExplorationSummaryObjectFactory
          .createFromBackendDict(dict)),
      backendDict.edited_exp_summary_dicts.map(
        dict => this.learnerExplorationSummaryObjectFactory
          .createFromBackendDict(dict))
    );
  }
}

angular.module('oppia').factory(
  'UserProfileObjectFactory',
  downgradeInjectable(UserProfileObjectFactory));


text:
<?php

declare (strict_types=1);
namespace Rector\DeadCode\Rector\Concat;

use PhpParser\Node;
use PhpParser\Node\Expr;
use PhpParser\Node\Expr\BinaryOp\Concat;
use PhpParser\Node\Expr\Cast\String_;
use Rector\Core\Rector\AbstractRector;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
/**
 * @see \Rector\Tests\DeadCode\Rector\Concat\RemoveConcatAutocastRector\RemoveConcatAutocastRectorTest
 */
final class RemoveConcatAutocastRector extends \Rector\Core\Rector\AbstractRector
{
    public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition
    {
        return new \Symplify\RuleDocGenerator\ValueObject\RuleDefinition('Remove (string) casting when it comes to concat, that does this by default', [new \Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample(<<<'CODE_SAMPLE'
class SomeConcatingClass
{
    public function run($value)
    {
        return 'hi ' . (string) $value;
    }
}
CODE_SAMPLE
, <<<'CODE_SAMPLE'
class SomeConcatingClass
{
    public function run($value)
    {
        return 'hi ' . $value;
    }
}
CODE_SAMPLE
)]);
    }
    /**
     * @return array<class-string<Node>>
     */
    public function getNodeTypes() : array
    {
        return [\PhpParser\Node\Expr\BinaryOp\Concat::class];
    }
    /**
     * @param Concat $node
     */
    public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
    {
        if (!$node->left instanceof \PhpParser\Node\Expr\Cast\String_ && !$node->right instanceof \PhpParser\Node\Expr\Cast\String_) {
            return null;
        }
        $node->left = $this->removeStringCast($node->left);
        $node->right = $this->removeStringCast($node->right);
        return $node;
    }
    private function removeStringCast(\PhpParser\Node\Expr $expr) : \PhpParser\Node\Expr
    {
        return $expr instanceof \PhpParser\Node\Expr\Cast\String_ ? $expr->expr : $expr;
    }
}


text:
<?xml version="1.0" encoding="utf-8"?>
<section xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="zend.mail.sending"><info><title>Отправка через SMTP</title></info>

    <para>
        Если требуется отправить сообщение электронной почты через SMTP,
        то прежде чем будет вызван метод <methodname>send()</methodname>,
        нужно создать и зарегистрировать в <classname>Zend_Mail</classname>
        объект <classname>Zend_Mail_Transport_Smtp</classname>.
        Для всех последующих вызовов <methodname>Zend_Mail::send()</methodname>
        в текущем скрипте будет использоваться SMTP:
    </para>
    <example xml:id="zend.mail.sending.example-1"><info><title>Отправка сообщений через SMTP</title></info>

        <programlisting language="php"><![CDATA[
$tr = new Zend_Mail_Transport_Smtp('mail.example.com');
Zend_Mail::setDefaultTransport($tr);
]]></programlisting>
    </example>
    <para>
        Метод <methodname>setDefaultTransport()</methodname> и конструктор
        <classname>Zend_Mail_Transport_Smtp</classname> не требуют большого
        количества ресурсов при выполнении. Эти две строки кода могут быть
        выполнены во время подготовки с тем, чтобы сконфигурировать
        поведение класса <classname>Zend_Mail</classname> для остальной
        части скрипта. Это позволяет хранить конфигурационные данные
        отдельно от логики приложения — отправляется ли почта через SMTP или
        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://php.net/mail"><methodname>mail()</methodname></link>,
        какой почтовый сервер используется и т.д.
    </para>
</section>


text:
.PHONY: all install uninstall installdirs test clean maintainer-clean distclean dist tar zip

SHELL=/bin/sh
LEX=flex

prefix=/usr/local
exec_prefix=$(prefix)
bindir=$(exec_prefix)/bin

CXXFLAGS=-O2 -Wall -march=native
LFLAGS=--warn

INSTALL=install
INSTALL_PROGRAM=$(INSTALL)
INSTALL_DATA=$(INSTALL) -m 644
LEXER_CC=TurtleLexer.cc
SOURCES:=src/$(LEXER_CC) $(filter-out src/$(LEXER_CC), $(wildcard src/*.cc))
OBJECTS:=$(patsubst src/%.cc, obj/%.o, $(SOURCES))
INCLUDES:=$(wildcard src/*.hh)

all: cturtle

cturtle: $(OBJECTS)
	$(CXX) $(LDFLAGS) $(OBJECTS) -o $@ $(LIBS)

obj/%.o: src/%.cc $(INCLUDES)
	@mkdir -p $(@D)
	$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -std=c++11 -o $@ $<

src/$(LEXER_CC): src/Turtle.l
	$(LEX) $(LFLAGS) -o $@ $<

install: cturtle installdirs
	$(INSTALL_PROGRAM) cturtle $(DESTDIR)$(bindir)

uninstall:
	rm -f $(DESTDIR)$(bindir)/cturtle

installdirs:
	mkdir -p $(DESTDIR)$(bindir)

test: cturtle
	$(MAKE) -C test
	test/test-cturtle

clean:
	rm -f obj/*.o
	rm -f cturtle
	rm -f cturtle.tar.gz
	rm -f cturtle.zip
	$(MAKE) -C test clean

maintainer-clean: clean
	rm -f src/$(LEXER_CC)

distclean: clean

dist: tar

tar: cturtle.tar.gz

cturtle.tar.gz: $(SOURCES) src/Turtle.l $(INCLUDES) LICENSE README.md
	$(eval TMP := $(shell mktemp -d cturtle.XXXXXXXX -t))
	mkdir -p $(TMP)/cturtle/src
	cp $(MAKEFILE_LIST) LICENSE README.md $(TMP)/cturtle
	cp $(SOURCES) src/Turtle.l $(INCLUDES) $(TMP)/cturtle/src
	mkdir $(TMP)/cturtle/test
	cp test/*.cc test/*.hpp test/Makefile $(TMP)/cturtle/test
	tar -C $(TMP) -czf $@ cturtle
	rm -rf $(TMP)

zip: cturtle.zip

cturtle.zip: $(SOURCES) src/Turtle.l $(INCLUDES) LICENSE README.md
	$(eval TMP := $(shell mktemp -d cturtle.XXXXXXXX -t))
	mkdir -p $(TMP)/cturtle/src
	cp $(MAKEFILE_LIST) LICENSE README.md $(TMP)/cturtle
	cp $(SOURCES) src/Turtle.l $(INCLUDES) $(TMP)/cturtle/src
	mkdir $(TMP)/cturtle/test
	cp test/*.cc test/*.hpp test/Makefile $(TMP)/cturtle/test
	cd $(TMP) && zip -r $@ cturtle
	cp $(TMP)/$@ .
	rm -rf $(TMP)


text:
#include "curl_setup.h"

#include "urldata.h"
#include "sendf.h"
#include "progress.h"

#define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h>

/* Provide a string that is 2 + 1 + 2 + 1 + 2 = 8 letters long (plus the zero
   byte) */
static void time2str(char *r, curl_off_t seconds)
{
  curl_off_t d, h, m, s;
  if(seconds <= 0) {
    strcpy(r, "--:--:--");
    return;
  }
  h = seconds / CURL_OFF_T_C(3600);
  if(h <= CURL_OFF_T_C(99)) {
    m = (seconds - (h*CURL_OFF_T_C(3600))) / CURL_OFF_T_C(60);
    s = (seconds - (h*CURL_OFF_T_C(3600))) - (m*CURL_OFF_T_C(60));
    snprintf(r, 9, "%2" FORMAT_OFF_T ":%02" FORMAT_OFF_T ":%02" FORMAT_OFF_T,
             h, m, s);
  }
  else {
    /* this equals to more than 99 hours, switch to a more suitable output
       format to fit within the limits. */
    d = seconds / CURL_OFF_T_C(86400);
    h = (seconds - (d*CURL_OFF_T_C(86400))) / CURL_OFF_T_C(3600);
    if(d <= CURL_OFF_T_C(999))
      snprintf(r, 9, "%3" FORMAT_OFF_T "d %02" FORMAT_OFF_T "h", d, h);
    else
      snprintf(r, 9, "%7" FORMAT_OFF_T "d", d);
  }
}

/* The point of this function would be to return a string of the input data,
   but never longer than 5 columns (+ one zero byte).
   Add suffix k, M, G when suitable... */
static char *max5data(curl_off_t bytes, char *max5)
{
#define ONE_KILOBYTE  CURL_OFF_T_C(1024)
#define ONE_MEGABYTE (CURL_OFF_T_C(1024) * ONE_KILOBYTE)
#define ONE_GIGABYTE (CURL_OFF_T_C(1024) * ONE_MEGABYTE)
#define ONE_TERABYTE (CURL_OFF_T_C(1024) * ONE_GIGABYTE)
#define ONE_PETABYTE (CURL_OFF_T_C(1024) * ONE_TERABYTE)

  if(bytes < CURL_OFF_T_C(100000))
    snprintf(max5, 6, "%5" FORMAT_OFF_T, bytes);

  else if(bytes < CURL_OFF_T_C(10000) * ONE_KILOBYTE)
    snprintf(max5, 6, "%4" FORMAT_OFF_T "k", bytes/ONE_KILOBYTE);

  else if(bytes < CURL_OFF_T_C(100) * ONE_MEGABYTE)
    /* 'XX.XM' is good as long as we're less than 100 megs */
    snprintf(max5, 6, "%2" FORMAT_OFF_T ".%0" FORMAT_OFF_T "M",
              bytes/ONE_MEGABYTE,
             (bytes%ONE_MEGABYTE) / (ONE_MEGABYTE/CURL_OFF_T_C(10)) );

#if (CURL_SIZEOF_CURL_OFF_T > 4)

  else if(bytes < CURL_OFF_T_C(10000) * ONE_MEGABYTE)
    /* 'XXXXM' is good until we're at 10000MB or above */
    snprintf(max5, 6, "%4" FORMAT_OFF_T "M", bytes/ONE_MEGABYTE);

  else if(bytes < CURL_OFF_T_C(100) * ONE_GIGABYTE)
    /* 10000 MB - 100 GB, we show it as XX.XG */
    snprintf(max5, 6, "%2" FORMAT_OFF_T ".%0" FORMAT_OFF_T "G",
              bytes/ONE_GIGABYTE,
             (bytes%ONE_GIGABYTE) / (ONE_GIGABYTE/CURL_OFF_T_C(10)) );

  else if(bytes < CURL_OFF_T_C(10000) * ONE_GIGABYTE)
    /* up to 10000GB, display without decimal: XXXXG */
    snprintf(max5, 6, "%4" FORMAT_OFF_T "G", bytes/ONE_GIGABYTE);

  else if(bytes < CURL_OFF_T_C(10000) * ONE_TERABYTE)
    /* up to 10000TB, display without decimal: XXXXT */
    snprintf(max5, 6, "%4" FORMAT_OFF_T "T", bytes/ONE_TERABYTE);

  else
    /* up to 10000PB, display without decimal: XXXXP */
    snprintf(max5, 6, "%4" FORMAT_OFF_T "P", bytes/ONE_PETABYTE);

    /* 16384 petabytes (16 exabytes) is the maximum a 64 bit unsigned number
       can hold, but our data type is signed so 8192PB will be the maximum. */

#else

  else
    snprintf(max5, 6, "%4" FORMAT_OFF_T "M", bytes/ONE_MEGABYTE);

#endif

  return max5;
}

/*

   New proposed interface, 9th of February 2000:

   pgrsStartNow() - sets start time
   pgrsSetDownloadSize(x) - known expected download size
   pgrsSetUploadSize(x) - known expected upload size
   pgrsSetDownloadCounter() - amount of data currently downloaded
   pgrsSetUploadCounter() - amount of data currently uploaded
   pgrsUpdate() - show progress
   pgrsDone() - transfer complete

*/

int Curl_pgrsDone(struct connectdata *conn)
{
  int rc;
  struct SessionHandle *data = conn->data;
  data->progress.lastshow=0;
  rc = Curl_pgrsUpdate(conn); /* the final (forced) update */
  if(rc)
    return rc;

  if(!(data->progress.flags & PGRS_HIDE) &&
     !data->progress.callback)
    /* only output if we don't use a progress callback and we're not
     * hidden */
    fprintf(data->set.err, "\n");

  data->progress.speeder_c = 0; /* reset the progress meter display */
  return 0;
}

/* reset all times except redirect, and reset the known transfer sizes */
void Curl_pgrsResetTimesSizes(struct SessionHandle *data)
{
  data->progress.t_nslookup = 0.0;
  data->progress.t_connect = 0.0;
  data->progress.t_pretransfer = 0.0;
  data->progress.t_starttransfer = 0.0;

  Curl_pgrsSetDownloadSize(data, 0);
  Curl_pgrsSetUploadSize(data, 0);
}

void Curl_pgrsTime(struct SessionHandle *data, timerid timer)
{
  struct timeval now = Curl_tvnow();

  switch(timer) {
  default:
  case TIMER_NONE:
    /* mistake filter */
    break;
  case TIMER_STARTSINGLE:
    /* This is set at the start of a single fetch */
    data->progress.t_startsingle = now;
    break;

  case TIMER_STARTACCEPT:
    data->progress.t_acceptdata = Curl_tvnow();
    break;

  case TIMER_NAMELOOKUP:
    data->progress.t_nslookup =
      Curl_tvdiff_secs(now, data->progress.t_startsingle);
    break;
  case TIMER_CONNECT:
    data->progress.t_connect =
      Curl_tvdiff_secs(now, data->progress.t_startsingle);
    break;
  case TIMER_APPCONNECT:
    data->progress.t_appconnect =
      Curl_tvdiff_secs(now, data->progress.t_startsingle);
    break;
  case TIMER_PRETRANSFER:
    data->progress.t_pretransfer =
      Curl_tvdiff_secs(now, data->progress.t_startsingle);
    break;
  case TIMER_STARTTRANSFER:
    data->progress.t_starttransfer =
      Curl_tvdiff_secs(now, data->progress.t_startsingle);
    break;
  case TIMER_POSTRANSFER:
    /* this is the normal end-of-transfer thing */
    break;
  case TIMER_REDIRECT:
    data->progress.t_redirect = Curl_tvdiff_secs(now, data->progress.start);
    break;
  }
}

void Curl_pgrsStartNow(struct SessionHandle *data)
{
  data->progress.speeder_c = 0; /* reset the progress meter display */
  data->progress.start = Curl_tvnow();
  /* clear all bits except HIDE and HEADERS_OUT */
  data->progress.flags &= PGRS_HIDE|PGRS_HEADERS_OUT;
}

void Curl_pgrsSetDownloadCounter(struct SessionHandle *data, curl_off_t size)
{
  data->progress.downloaded = size;
}

void Curl_pgrsSetUploadCounter(struct SessionHandle *data, curl_off_t size)
{
  data->progress.uploaded = size;
}

void Curl_pgrsSetDownloadSize(struct SessionHandle *data, curl_off_t size)
{
  data->progress.size_dl = size;
  if(size >= 0)
    data->progress.flags |= PGRS_DL_SIZE_KNOWN;
  else
    data->progress.flags &= ~PGRS_DL_SIZE_KNOWN;
}

void Curl_pgrsSetUploadSize(struct SessionHandle *data, curl_off_t size)
{
  data->progress.size_ul = size;
  if(size >= 0)
    data->progress.flags |= PGRS_UL_SIZE_KNOWN;
  else
    data->progress.flags &= ~PGRS_UL_SIZE_KNOWN;
}

/*
 * Curl_pgrsUpdate() returns 0 for success or the value returned by the
 * progress callback!
 */
int Curl_pgrsUpdate(struct connectdata *conn)
{
  struct timeval now;
  int result;
  char max5[6][10];
  curl_off_t dlpercen=0;
  curl_off_t ulpercen=0;
  curl_off_t total_percen=0;
  curl_off_t total_transfer;
  curl_off_t total_expected_transfer;
  curl_off_t timespent;
  struct SessionHandle *data = conn->data;
  int nowindex = data->progress.speeder_c% CURR_TIME;
  int checkindex;
  int countindex; /* amount of seconds stored in the speeder array */
  char time_left[10];
  char time_total[10];
  char time_spent[10];
  curl_off_t ulestimate=0;
  curl_off_t dlestimate=0;
  curl_off_t total_estimate;
  bool shownow=FALSE;

  now = Curl_tvnow(); /* what time is it */

  /* The time spent so far (from the start) */
  data->progress.timespent =
    (double)(now.tv_sec - data->progress.start.tv_sec) +
    (double)(now.tv_usec - data->progress.start.tv_usec)/1000000.0;
  timespent = (curl_off_t)data->progress.timespent;

  /* The average download speed this far */
  data->progress.dlspeed = (curl_off_t)
    ((double)data->progress.downloaded/
     (data->progress.timespent>0?data->progress.timespent:1));

  /* The average upload speed this far */
  data->progress.ulspeed = (curl_off_t)
    ((double)data->progress.uploaded/
     (data->progress.timespent>0?data->progress.timespent:1));

  /* Calculations done at most once a second, unless end is reached */
  if(data->progress.lastshow != (long)now.tv_sec) {
    shownow = TRUE;

    data->progress.lastshow = now.tv_sec;

    /* Let's do the "current speed" thing, which should use the fastest
       of the dl/ul speeds. Store the faster speed at entry 'nowindex'. */
    data->progress.speeder[ nowindex ] =
      data->progress.downloaded>data->progress.uploaded?
      data->progress.downloaded:data->progress.uploaded;

    /* remember the exact time for this moment */
    data->progress.speeder_time [ nowindex ] = now;

    /* advance our speeder_c counter, which is increased every time we get
       here and we expect it to never wrap as 2^32 is a lot of seconds! */
    data->progress.speeder_c++;

    /* figure out how many index entries of data we have stored in our speeder
       array. With N_ENTRIES filled in, we have about N_ENTRIES-1 seconds of
       transfer. Imagine, after one second we have filled in two entries,
       after two seconds we've filled in three entries etc. */
    countindex = ((data->progress.speeder_c>=CURR_TIME)?
                  CURR_TIME:data->progress.speeder_c) - 1;

    /* first of all, we don't do this if there's no counted seconds yet */
    if(countindex) {
      long span_ms;

      /* Get the index position to compare with the 'nowindex' position.
         Get the oldest entry possible. While we have less than CURR_TIME
         entries, the first entry will remain the oldest. */
      checkindex = (data->progress.speeder_c>=CURR_TIME)?
        data->progress.speeder_c%CURR_TIME:0;

      /* Figure out the exact time for the time span */
      span_ms = Curl_tvdiff(now,
                            data->progress.speeder_time[checkindex]);
      if(0 == span_ms)
        span_ms=1; /* at least one millisecond MUST have passed */

      /* Calculate the average speed the last 'span_ms' milliseconds */
      {
        curl_off_t amount = data->progress.speeder[nowindex]-
          data->progress.speeder[checkindex];

        if(amount > CURL_OFF_T_C(4294967) /* 0xffffffff/1000 */)
          /* the 'amount' value is bigger than would fit in 32 bits if
             multiplied with 1000, so we use the double math for this */
          data->progress.current_speed = (curl_off_t)
            ((double)amount/((double)span_ms/1000.0));
        else
          /* the 'amount' value is small enough to fit within 32 bits even
             when multiplied with 1000 */
          data->progress.current_speed = amount*CURL_OFF_T_C(1000)/span_ms;
      }
    }
    else
      /* the first second we use the main average */
      data->progress.current_speed =
        (data->progress.ulspeed>data->progress.dlspeed)?
        data->progress.ulspeed:data->progress.dlspeed;

  } /* Calculations end */

  if(!(data->progress.flags & PGRS_HIDE)) {
    /* progress meter has not been shut off */

    if(data->set.fxferinfo) {
      /* There's a callback set, call that */
      result= data->set.fxferinfo(data->set.progress_client,
                                  data->progress.size_dl,
                                  data->progress.downloaded,
                                  data->progress.size_ul,
                                  data->progress.uploaded);
      if(result)
        failf(data, "Callback aborted");
      return result;
    }
    else if(data->set.fprogress) {
      /* The older deprecated callback is set, call that */
      result= data->set.fprogress(data->set.progress_client,
                                  (double)data->progress.size_dl,
                                  (double)data->progress.downloaded,
                                  (double)data->progress.size_ul,
                                  (double)data->progress.uploaded);
      if(result)
        failf(data, "Callback aborted");
      return result;
    }

    if(!shownow)
      /* only show the internal progress meter once per second */
      return 0;

    /* If there's no external callback set, use internal code to show
       progress */

    if(!(data->progress.flags & PGRS_HEADERS_OUT)) {
      if(data->state.resume_from) {
        fprintf(data->set.err,
                "** Resuming transfer from byte position %" FORMAT_OFF_T "\n",
                data->state.resume_from);
      }
      fprintf(data->set.err,
              "  %% Total    %% Received %% Xferd  Average Speed   "
              "Time    Time     Time  Current\n"
              "                                 Dload  Upload   "
              "Total   Spent    Left  Speed\n");
      data->progress.flags |= PGRS_HEADERS_OUT; /* headers are shown */
    }

    /* Figure out the estimated time of arrival for the upload */
    if((data->progress.flags & PGRS_UL_SIZE_KNOWN) &&
       (data->progress.ulspeed > CURL_OFF_T_C(0))) {
      ulestimate = data->progress.size_ul / data->progress.ulspeed;

      if(data->progress.size_ul > CURL_OFF_T_C(10000))
        ulpercen = data->progress.uploaded /
          (data->progress.size_ul/CURL_OFF_T_C(100));
      else if(data->progress.size_ul > CURL_OFF_T_C(0))
        ulpercen = (data->progress.uploaded*100) /
          data->progress.size_ul;
    }

    /* ... and the download */
    if((data->progress.flags & PGRS_DL_SIZE_KNOWN) &&
       (data->progress.dlspeed > CURL_OFF_T_C(0))) {
      dlestimate = data->progress.size_dl / data->progress.dlspeed;

      if(data->progress.size_dl > CURL_OFF_T_C(10000))
        dlpercen = data->progress.downloaded /
          (data->progress.size_dl/CURL_OFF_T_C(100));
      else if(data->progress.size_dl > CURL_OFF_T_C(0))
        dlpercen = (data->progress.downloaded*100) /
          data->progress.size_dl;
    }

    /* Now figure out which of them is slower and use that one for the
       total estimate! */
    total_estimate = ulestimate>dlestimate?ulestimate:dlestimate;

    /* create the three time strings */
    time2str(time_left, total_estimate > 0?(total_estimate - timespent):0);
    time2str(time_total, total_estimate);
    time2str(time_spent, timespent);

    /* Get the total amount of data expected to get transferred */
    total_expected_transfer =
      (data->progress.flags & PGRS_UL_SIZE_KNOWN?
       data->progress.size_ul:data->progress.uploaded)+
      (data->progress.flags & PGRS_DL_SIZE_KNOWN?
       data->progress.size_dl:data->progress.downloaded);

    /* We have transferred this much so far */
    total_transfer = data->progress.downloaded + data->progress.uploaded;

    /* Get the percentage of data transferred so far */
    if(total_expected_transfer > CURL_OFF_T_C(10000))
      total_percen = total_transfer /
        (total_expected_transfer/CURL_OFF_T_C(100));
    else if(total_expected_transfer > CURL_OFF_T_C(0))
      total_percen = (total_transfer*100) / total_expected_transfer;

    fprintf(data->set.err,
            "\r"
            "%3" FORMAT_OFF_T " %s  "
            "%3" FORMAT_OFF_T " %s  "
            "%3" FORMAT_OFF_T " %s  %s  %s %s %s %s %s",
            total_percen,  /* 3 letters */                /* total % */
            max5data(total_expected_transfer, max5[2]),   /* total size */
            dlpercen,      /* 3 letters */                /* rcvd % */
            max5data(data->progress.downloaded, max5[0]), /* rcvd size */
            ulpercen,      /* 3 letters */                /* xfer % */
            max5data(data->progress.uploaded, max5[1]),   /* xfer size */
            max5data(data->progress.dlspeed, max5[3]),    /* avrg dl speed */
            max5data(data->progress.ulspeed, max5[4]),    /* avrg ul speed */
            time_total,    /* 8 letters */                /* total time */
            time_spent,    /* 8 letters */                /* time spent */
            time_left,     /* 8 letters */                /* time left */
            max5data(data->progress.current_speed, max5[5]) /* current speed */
            );

    /* we flush the output stream to make it appear as soon as possible */
    fflush(data->set.err);

  } /* !(data->progress.flags & PGRS_HIDE) */

  return 0;
}


text:
import unittest
from unittest.mock import patch

import numpy as np

try:
    import transformers  # noqa
    from sentence_transformers import SentenceTransformer  # noqa
    from simcse import SimCSE  # noqa
    from projects.roscoe.score import (
        Chain,
        Evaluator,
        LANGUAGE_MODEL_SCORES,
        PPL_CHAIN,
        PPL_STEP,
        PPL_STEP_MAX,
    )

    DEPENDENCIES_AVAILABLE = True
except ImportError:
    DEPENDENCIES_AVAILABLE = False

@unittest.skipUnless(
    DEPENDENCIES_AVAILABLE, 'Must install transformers and simcse to run this test'
)
class TestEvaluator(unittest.TestCase):
    """
    Basic tests for some simple functionality.
    """

    def __init__(self, methodName: str = ...) -> None:
        super().__init__(methodName)
        self.reasoning_evaluator = Evaluator(
            hypos=[],
            context=[],
            references=[],
            score_types=[],
        )
        self.reasoning_evaluator.ppl_batch = 1
        self.chain = Chain("chain")

    def test_linearize_array(self):
        pre_linearized = [['1', '2'], ['3', '4']]
        desired_linearized = ['1', '2', '3', '4']
        linearized = self.reasoning_evaluator.linearize_array(pre_linearized)
        self.assertEqual(desired_linearized, linearized)

    def test_repetitions_words(self):
        input_word_embeddings = np.array(
            [
                np.array([[0.1, 0.1], [0.2, 0.2]]),  # sentence 1
                np.array([[0.1, 0.1]]),  # sentence 2
            ]
        )
        desired_similarity = 1.0
        similarity = self.reasoning_evaluator.repetitions(input_word_embeddings)
        self.assertAlmostEqual(desired_similarity, similarity, places=2)

        input_word_embeddings = np.array(
            [
                np.array([[0.1, 0.1]]),  # sentence 1
                np.array([[-0.1, -0.1]]),  # sentence 2
            ]
        )
        desired_similarity = 0.0
        similarity = self.reasoning_evaluator.repetitions(input_word_embeddings)
        self.assertAlmostEqual(desired_similarity, similarity, places=2)

    def test_repetitions_sentences(self):
        input_sentence_embeddings = np.array(
            [
                np.array([0.1, 0.1]),  # sentence 1
                np.array([0.1, 0.1]),  # sentence 2
                np.array([0.2, 0.2]),  # sentence 3
            ]
        )
        desired_similarity = 1.0
        similarity = self.reasoning_evaluator.repetitions(input_sentence_embeddings)
        self.assertAlmostEqual(desired_similarity, similarity, places=2)

        input_sentence_embeddings = np.array(
            [np.array([0.1, 0.1]), np.array([-0.1, -0.1])]  # sentence 1  # sentence 2
        )
        desired_similarity = 0.0
        similarity = self.reasoning_evaluator.repetitions(input_sentence_embeddings)
        self.assertAlmostEqual(desired_similarity, similarity, places=2)

    @patch("projects.roscoe.score.Evaluator.contradiction_probability")
    def test_max_contradiction(self, mock_contradiction_probability):
        mock_contradiction_probability.return_value = [1.0]
        context = ["a", "b"]
        hypo = ["c", "d", "e"]
        batch_size = 1
        desired_probs_size = len(context) * len(hypo)
        probs = self.reasoning_evaluator.max_contradiction(context, hypo, batch_size)
        self.assertEqual(desired_probs_size, len(probs))

    @patch("projects.roscoe.score.Evaluator.perplexity")
    def test_compute_ppl_scores(self, mock_perplexity):
        mock_perplexity.return_value = [(2, 2), (20, 2)]
        score_types = LANGUAGE_MODEL_SCORES
        desired_scores = {
            PPL_CHAIN: 0.5,
            PPL_STEP: 0.09,
            PPL_STEP_MAX: 0.05,
        }
        scores = self.reasoning_evaluator.compute_ppl_scores(self.chain, score_types)
        for model in LANGUAGE_MODEL_SCORES:
            self.assertTrue(model in scores)
            self.assertAlmostEqual(desired_scores[model], scores[model], places=2)

if __name__ == '__main__':
    unittest.main()


text:
remove empty files.... while converting old lively demos to mp4.

```bash
find . -size 0 | invoke rm
```

Just for reverences, my `invoke` script... similar to xargs, but not quite so...

```
while read i; do
        $@ "$i"
done
```

## Useful Ad-Hoc Video List with Player

(since... putting them all in video tags will crash chrome)

```markdown
- [151209_PaintElephant_Problem](151209_PaintElephant_Problem.mp4) {.video}

<script>
var base = lively.query(this, "lively-container").getURL().toString().replace(/[^\/]*$/,"");
var videoPlayer;

(async () => {
  for(let ea of this.parentElement.querySelectorAll(".video")) {
    let link = ea.querySelector("a")
    if (!link) continue;
    let file = link.getAttribute("href");
    lively.removeEventListener("lively", link)
    lively.addEventListener("lively", link, "click", evt => {
      evt.preventDefault()
      evt.stopPropagation()

      videoPlayer.remove()
      videoPlayer = <div id="videoplayer"><video width="320" height="240" controls><source src={base + file} type="video/mp4"></source></video></div>
      videoPlayer.querySelector("video").play()
      ea.appendChild(videoPlayer)

      return true
    })
    // ea.appendChild(<ul><li></ul>)
  }
})()
</script>
```


text:
///////////////////////////////////////////////////////////////////////////////
//
//  FakeClassName.h
//
//  FakeClassName is responsible for providing a test stub for ClassName
//
///////////////////////////////////////////////////////////////////////////////
#include "ClassName.h"

#endif  // D_FakeClassName_H