Commit fce26637fd2a73ae716762c510fc306eb94fd54c

Authored by Wilmer Ramones
0 parents
Exists in master

sym_cea está listo y configurado con autenticación y autorización

Showing 328 changed files with 52989 additions and 0 deletions   Show diff stats

Too many changes.

To preserve performance only 100 of 328 files displayed.

.bowerrc
... ... @@ -0,0 +1,3 @@
  1 +{
  2 + "directory": "web/assets/vendor/"
  3 +}
0 4 \ No newline at end of file
... ...
.gitignore
... ... @@ -0,0 +1,12 @@
  1 +/web/bundles/
  2 +/app/bootstrap.php.cache
  3 +/app/cache/*
  4 +/app/config/parameters.yml
  5 +/app/logs/*
  6 +!app/cache/.gitkeep
  7 +!app/logs/.gitkeep
  8 +/app/phpunit.xml
  9 +/build/
  10 +/vendor/
  11 +/bin/
  12 +/composer.phar
... ...
.idea/.name
... ... @@ -0,0 +1 @@
  1 +sym_cea
0 2 \ No newline at end of file
... ...
.idea/copyright/profiles_settings.xml
... ... @@ -0,0 +1,3 @@
  1 +<component name="CopyrightManager">
  2 + <settings default="" />
  3 +</component>
0 4 \ No newline at end of file
... ...
.idea/deployment.xml
... ... @@ -0,0 +1,14 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="PublishConfigData" serverName="sym_cea">
  4 + <serverData>
  5 + <paths name="sym_cea">
  6 + <serverdata>
  7 + <mappings>
  8 + <mapping local="$PROJECT_DIR$" web="cea" />
  9 + </mappings>
  10 + </serverdata>
  11 + </paths>
  12 + </serverData>
  13 + </component>
  14 +</project>
0 15 \ No newline at end of file
... ...
.idea/dictionaries/ubv_cipee.xml
... ... @@ -0,0 +1,7 @@
  1 +<component name="ProjectDictionaryState">
  2 + <dictionary name="ubv-cipee">
  3 + <words>
  4 + <w>ramones</w>
  5 + </words>
  6 + </dictionary>
  7 +</component>
0 8 \ No newline at end of file
... ...
.idea/encodings.xml
... ... @@ -0,0 +1,6 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="Encoding">
  4 + <file url="PROJECT" charset="UTF-8" />
  5 + </component>
  6 +</project>
0 7 \ No newline at end of file
... ...
.idea/misc.xml
... ... @@ -0,0 +1,13 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="ProjectLevelVcsManager" settingsEditedManually="false">
  4 + <OptionsSetting value="true" id="Add" />
  5 + <OptionsSetting value="true" id="Remove" />
  6 + <OptionsSetting value="true" id="Checkout" />
  7 + <OptionsSetting value="true" id="Update" />
  8 + <OptionsSetting value="true" id="Status" />
  9 + <OptionsSetting value="true" id="Edit" />
  10 + <ConfirmationsSetting value="0" id="Add" />
  11 + <ConfirmationsSetting value="0" id="Remove" />
  12 + </component>
  13 +</project>
0 14 \ No newline at end of file
... ...
.idea/modules.xml
... ... @@ -0,0 +1,8 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="ProjectModuleManager">
  4 + <modules>
  5 + <module fileurl="file://$PROJECT_DIR$/.idea/sym_cea.iml" filepath="$PROJECT_DIR$/.idea/sym_cea.iml" />
  6 + </modules>
  7 + </component>
  8 +</project>
0 9 \ No newline at end of file
... ...
.idea/sym_cea.iml
... ... @@ -0,0 +1,48 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<module type="WEB_MODULE" version="4">
  3 + <component name="NewModuleRootManager">
  4 + <content url="file://$MODULE_DIR$">
  5 + <sourceFolder url="file://$MODULE_DIR$/vendor/doctrine/doctrine-cache-bundle/Tests/DependencyInjection" isTestSource="false" />
  6 + <sourceFolder url="file://$MODULE_DIR$/vendor/symfony/symfony/src/Symfony/Component/ClassLoader/Tests/Fixtures/alpha" isTestSource="false" />
  7 + <sourceFolder url="file://$MODULE_DIR$/vendor/symfony/symfony/src/Symfony/Component/ClassLoader/Tests/Fixtures/beta" isTestSource="false" />
  8 + <sourceFolder url="file://$MODULE_DIR$/vendor/sensiolabs/security-checker" isTestSource="false" />
  9 + <sourceFolder url="file://$MODULE_DIR$/vendor/symfony/symfony/src/Symfony/Component/ClassLoader/Tests/Fixtures/fallback" isTestSource="false" />
  10 + <sourceFolder url="file://$MODULE_DIR$/vendor/symfony/symfony/src/Symfony/Component/ClassLoader/Tests/Fixtures" isTestSource="false" />
  11 + <sourceFolder url="file://$MODULE_DIR$/vendor/symfony/symfony/src/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/fallback" isTestSource="false" packagePrefix="Apc" />
  12 + <sourceFolder url="file://$MODULE_DIR$/vendor/symfony/symfony/src/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/alpha" isTestSource="false" />
  13 + <sourceFolder url="file://$MODULE_DIR$/vendor/symfony/symfony/src/Symfony/Component/ClassLoader/Tests/Fixtures/Apc/beta" isTestSource="false" />
  14 + <sourceFolder url="file://$MODULE_DIR$/vendor/doctrine/dbal/lib" isTestSource="false" />
  15 + <sourceFolder url="file://$MODULE_DIR$/vendor/doctrine/orm/lib" isTestSource="false" />
  16 + <sourceFolder url="file://$MODULE_DIR$/vendor/doctrine/cache/tests" isTestSource="true" />
  17 + <sourceFolder url="file://$MODULE_DIR$/vendor/doctrine/inflector/tests" isTestSource="true" />
  18 + <sourceFolder url="file://$MODULE_DIR$/vendor/doctrine/collections/tests" isTestSource="true" />
  19 + <sourceFolder url="file://$MODULE_DIR$/vendor/doctrine/common/lib" isTestSource="false" />
  20 + <sourceFolder url="file://$MODULE_DIR$/vendor/doctrine/lexer/lib" isTestSource="false" />
  21 + <sourceFolder url="file://$MODULE_DIR$/vendor/doctrine/cache/lib" isTestSource="false" />
  22 + <sourceFolder url="file://$MODULE_DIR$/vendor/doctrine/collections/lib" isTestSource="false" />
  23 + <sourceFolder url="file://$MODULE_DIR$/vendor/doctrine/inflector/lib" isTestSource="false" />
  24 + <sourceFolder url="file://$MODULE_DIR$/vendor/doctrine/annotations/lib" isTestSource="false" />
  25 + <sourceFolder url="file://$MODULE_DIR$/vendor/symfony/symfony/src/Symfony/Component/ClassLoader/Tests/Fixtures/LegacyApc/fallback" isTestSource="false" packagePrefix="LegacyApc" />
  26 + <sourceFolder url="file://$MODULE_DIR$/vendor/symfony/symfony/src/Symfony/Component/ClassLoader/Tests/Fixtures/LegacyApc/alpha" isTestSource="false" />
  27 + <sourceFolder url="file://$MODULE_DIR$/vendor/symfony/symfony/src/Symfony/Component/ClassLoader/Tests/Fixtures/LegacyApc/beta" isTestSource="false" />
  28 + <sourceFolder url="file://$MODULE_DIR$/vendor/psr/log" isTestSource="false" />
  29 + <sourceFolder url="file://$MODULE_DIR$/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Tests/Fixtures" isTestSource="false" />
  30 + <sourceFolder url="file://$MODULE_DIR$/vendor/symfony/symfony/src/Symfony/Component/Validator/Tests" isTestSource="true" />
  31 + <sourceFolder url="file://$MODULE_DIR$/vendor/symfony/symfony/src" isTestSource="false" />
  32 + <sourceFolder url="file://$MODULE_DIR$/vendor/monolog/monolog/src" isTestSource="false" />
  33 + <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
  34 + </content>
  35 + <orderEntry type="inheritedJdk" />
  36 + <orderEntry type="sourceFolder" forTests="false" />
  37 + <orderEntry type="module-library">
  38 + <library name="PHARS">
  39 + <CLASSES>
  40 + <root url="phar://$MODULE_DIR$/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/ProjectWithXsdExtensionInPhar.phar/" />
  41 + </CLASSES>
  42 + <SOURCES>
  43 + <root url="phar://$MODULE_DIR$/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/ProjectWithXsdExtensionInPhar.phar/" />
  44 + </SOURCES>
  45 + </library>
  46 + </orderEntry>
  47 + </component>
  48 +</module>
0 49 \ No newline at end of file
... ...
.idea/symfony2.xml
... ... @@ -0,0 +1,8 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="Symfony2PluginSettings">
  4 + <option name="pathToUrlGenerator" value="var/cache/dev/appDevUrlGenerator.php" />
  5 + <option name="pathToTranslation" value="var/cache/dev/translations" />
  6 + <option name="pluginEnabled" value="true" />
  7 + </component>
  8 +</project>
0 9 \ No newline at end of file
... ...
.idea/workspace.xml
... ... @@ -0,0 +1,940 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project version="4">
  3 + <component name="ChangeListManager">
  4 + <list default="true" id="5cb32f38-0c9f-4717-964b-38fbcbcb548a" name="Default" comment="" />
  5 + <ignored path="sym_cea.iws" />
  6 + <ignored path=".idea/workspace.xml" />
  7 + <ignored path=".idea/dataSources.local.xml" />
  8 + <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
  9 + <option name="TRACKING_ENABLED" value="true" />
  10 + <option name="SHOW_DIALOG" value="false" />
  11 + <option name="HIGHLIGHT_CONFLICTS" value="true" />
  12 + <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
  13 + <option name="LAST_RESOLUTION" value="IGNORE" />
  14 + </component>
  15 + <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
  16 + <component name="CreatePatchCommitExecutor">
  17 + <option name="PATCH_PATH" value="" />
  18 + </component>
  19 + <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
  20 + <component name="FavoritesManager">
  21 + <favorites_list name="sym_cea" />
  22 + </component>
  23 + <component name="FileEditorManager">
  24 + <leaf>
  25 + <file leaf-file-name="security.yml" pinned="false" current-in-tab="false">
  26 + <entry file="file://$PROJECT_DIR$/app/config/security.yml">
  27 + <provider selected="true" editor-type-id="text-editor">
  28 + <state vertical-scroll-proportion="0.0">
  29 + <caret line="37" column="52" selection-start-line="37" selection-start-column="52" selection-end-line="37" selection-end-column="52" />
  30 + <folding />
  31 + </state>
  32 + </provider>
  33 + </entry>
  34 + </file>
  35 + <file leaf-file-name="RoleController.php" pinned="false" current-in-tab="false">
  36 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Controller/RoleController.php">
  37 + <provider selected="true" editor-type-id="text-editor">
  38 + <state vertical-scroll-proportion="-6.0">
  39 + <caret line="14" column="12" selection-start-line="14" selection-start-column="12" selection-end-line="14" selection-end-column="12" />
  40 + <folding />
  41 + </state>
  42 + </provider>
  43 + </entry>
  44 + </file>
  45 + <file leaf-file-name="index.html.twig" pinned="false" current-in-tab="false">
  46 + <entry file="file://$PROJECT_DIR$/app/Resources/views/role/index.html.twig">
  47 + <provider selected="true" editor-type-id="text-editor">
  48 + <state vertical-scroll-proportion="-25.333334">
  49 + <caret line="38" column="9" selection-start-line="38" selection-start-column="9" selection-end-line="38" selection-end-column="9" />
  50 + <folding>
  51 + <element signature="e#12#26#0#Twig" expanded="true" />
  52 + </folding>
  53 + </state>
  54 + </provider>
  55 + </entry>
  56 + </file>
  57 + <file leaf-file-name="config.yml" pinned="false" current-in-tab="false">
  58 + <entry file="file://$PROJECT_DIR$/app/config/config.yml">
  59 + <provider selected="true" editor-type-id="text-editor">
  60 + <state vertical-scroll-proportion="0.0">
  61 + <caret line="12" column="38" selection-start-line="12" selection-start-column="38" selection-end-line="12" selection-end-column="38" />
  62 + <folding />
  63 + </state>
  64 + </provider>
  65 + </entry>
  66 + </file>
  67 + <file leaf-file-name="base.html.twig" pinned="false" current-in-tab="false">
  68 + <entry file="file://$PROJECT_DIR$/app/Resources/views/base.html.twig">
  69 + <provider selected="true" editor-type-id="text-editor">
  70 + <state vertical-scroll-proportion="-8.666667">
  71 + <caret line="13" column="10" selection-start-line="13" selection-start-column="10" selection-end-line="13" selection-end-column="10" />
  72 + <folding />
  73 + </state>
  74 + </provider>
  75 + </entry>
  76 + </file>
  77 + <file leaf-file-name="Persona.php" pinned="false" current-in-tab="false">
  78 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/Persona.php">
  79 + <provider selected="true" editor-type-id="text-editor">
  80 + <state vertical-scroll-proportion="-8.896552">
  81 + <caret line="617" column="0" selection-start-line="617" selection-start-column="0" selection-end-line="617" selection-end-column="0" />
  82 + <folding />
  83 + </state>
  84 + </provider>
  85 + </entry>
  86 + </file>
  87 + <file leaf-file-name="messages.es.xlf" pinned="false" current-in-tab="true">
  88 + <entry file="file://$PROJECT_DIR$/app/Resources/translations/messages.es.xlf">
  89 + <provider selected="true" editor-type-id="text-editor">
  90 + <state vertical-scroll-proportion="0.51295334">
  91 + <caret line="22" column="8" selection-start-line="22" selection-start-column="8" selection-end-line="22" selection-end-column="8" />
  92 + <folding />
  93 + </state>
  94 + </provider>
  95 + </entry>
  96 + </file>
  97 + <file leaf-file-name="index.html.twig" pinned="false" current-in-tab="false">
  98 + <entry file="file://$PROJECT_DIR$/app/Resources/views/default/index.html.twig">
  99 + <provider selected="true" editor-type-id="text-editor">
  100 + <state vertical-scroll-proportion="-4.0">
  101 + <caret line="6" column="68" selection-start-line="6" selection-start-column="68" selection-end-line="6" selection-end-column="68" />
  102 + <folding>
  103 + <element signature="e#3361#3367#0#Twig" expanded="true" />
  104 + </folding>
  105 + </state>
  106 + </provider>
  107 + </entry>
  108 + </file>
  109 + <file leaf-file-name="Rol.php" pinned="false" current-in-tab="false">
  110 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/Rol.php">
  111 + <provider selected="true" editor-type-id="text-editor">
  112 + <state vertical-scroll-proportion="-7.827586">
  113 + <caret line="58" column="90" selection-start-line="58" selection-start-column="85" selection-end-line="58" selection-end-column="90" />
  114 + <folding />
  115 + </state>
  116 + </provider>
  117 + </entry>
  118 + </file>
  119 + </leaf>
  120 + </component>
  121 + <component name="IdeDocumentHistory">
  122 + <option name="CHANGED_PATHS">
  123 + <list>
  124 + <option value="$PROJECT_DIR$/app/config/parameters.yml" />
  125 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/Genero.php" />
  126 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/PaisNacimiento.php" />
  127 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/Nacionalidad.php" />
  128 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/EstadoCivil.php" />
  129 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/DocumentoIdentidad.php" />
  130 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/TipoPersona.php" />
  131 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/Estatus.php" />
  132 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/RolInstitucion.php" />
  133 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/Institucion.php" />
  134 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/TipoInstitucion.php" />
  135 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/EjeParroquia.php" />
  136 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/Eje.php" />
  137 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/Parroquia.php" />
  138 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/Estado.php" />
  139 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/Municipio.php" />
  140 + <option value="$PROJECT_DIR$/src/AppBundle/Controller/RegistrationFormController.php" />
  141 + <option value="$PROJECT_DIR$/app/Resources/views/registration/register.html.twig" />
  142 + <option value="$PROJECT_DIR$/src/AppBundle/Controller/SecurityController.php" />
  143 + <option value="$PROJECT_DIR$/src/AppBundle/Form/UserType.php" />
  144 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/Usuarios.php" />
  145 + <option value="$PROJECT_DIR$/src/AppBundle/Controller/RegistrationController.php" />
  146 + <option value="$PROJECT_DIR$/src/AppBundle/Form/UsuariosType.php" />
  147 + <option value="$PROJECT_DIR$/src/AppBundle/Controller/UsuariosController.php" />
  148 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/Role.php" />
  149 + <option value="$PROJECT_DIR$/app/Resources/views/security/login.html.twig" />
  150 + <option value="$PROJECT_DIR$/app/config/routing.yml" />
  151 + <option value="$PROJECT_DIR$/app/config/security.yml" />
  152 + <option value="$PROJECT_DIR$/.bowerrc" />
  153 + <option value="$PROJECT_DIR$/app/Resources/views/default/index.html.twig" />
  154 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/AreaPersona.php" />
  155 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/Rol.php" />
  156 + <option value="$PROJECT_DIR$/src/AppBundle/Controller/RoleController.php" />
  157 + <option value="$PROJECT_DIR$/app/Resources/views/role/index.html.twig" />
  158 + <option value="$PROJECT_DIR$/app/Resources/views/base.html.twig" />
  159 + <option value="$PROJECT_DIR$/src/AppBundle/Entity/Persona.php" />
  160 + <option value="$PROJECT_DIR$/app/config/config.yml" />
  161 + <option value="$PROJECT_DIR$/app/Resources/translations/messages.es.xlf" />
  162 + </list>
  163 + </option>
  164 + </component>
  165 + <component name="JsBuildToolGruntFileManager" detection-done="true" />
  166 + <component name="JsBuildToolPackageJson" detection-done="true" />
  167 + <component name="JsGulpfileManager">
  168 + <detection-done>true</detection-done>
  169 + </component>
  170 + <component name="PhpWorkspaceProjectConfiguration" backward_compatibility_performed="true" />
  171 + <component name="ProjectFrameBounds">
  172 + <option name="y" value="-4" />
  173 + <option name="width" value="1440" />
  174 + <option name="height" value="904" />
  175 + </component>
  176 + <component name="ProjectLevelVcsManager" settingsEditedManually="false">
  177 + <OptionsSetting value="true" id="Add" />
  178 + <OptionsSetting value="true" id="Remove" />
  179 + <OptionsSetting value="true" id="Checkout" />
  180 + <OptionsSetting value="true" id="Update" />
  181 + <OptionsSetting value="true" id="Status" />
  182 + <OptionsSetting value="true" id="Edit" />
  183 + <ConfirmationsSetting value="0" id="Add" />
  184 + <ConfirmationsSetting value="0" id="Remove" />
  185 + </component>
  186 + <component name="ProjectView">
  187 + <navigator currentView="ProjectPane" proportions="" version="1">
  188 + <flattenPackages />
  189 + <showMembers />
  190 + <showModules />
  191 + <showLibraryContents />
  192 + <hideEmptyPackages />
  193 + <abbreviatePackageNames />
  194 + <autoscrollToSource />
  195 + <autoscrollFromSource />
  196 + <sortByType />
  197 + <manualOrder />
  198 + <foldersAlwaysOnTop value="true" />
  199 + </navigator>
  200 + <panes>
  201 + <pane id="Scope" />
  202 + <pane id="Scratches" />
  203 + <pane id="ProjectPane">
  204 + <subPane>
  205 + <PATH>
  206 + <PATH_ELEMENT>
  207 + <option name="myItemId" value="sym_cea" />
  208 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
  209 + </PATH_ELEMENT>
  210 + </PATH>
  211 + <PATH>
  212 + <PATH_ELEMENT>
  213 + <option name="myItemId" value="sym_cea" />
  214 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
  215 + </PATH_ELEMENT>
  216 + <PATH_ELEMENT>
  217 + <option name="myItemId" value="sym_cea" />
  218 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  219 + </PATH_ELEMENT>
  220 + </PATH>
  221 + <PATH>
  222 + <PATH_ELEMENT>
  223 + <option name="myItemId" value="sym_cea" />
  224 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
  225 + </PATH_ELEMENT>
  226 + <PATH_ELEMENT>
  227 + <option name="myItemId" value="sym_cea" />
  228 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  229 + </PATH_ELEMENT>
  230 + <PATH_ELEMENT>
  231 + <option name="myItemId" value="web" />
  232 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  233 + </PATH_ELEMENT>
  234 + </PATH>
  235 + <PATH>
  236 + <PATH_ELEMENT>
  237 + <option name="myItemId" value="sym_cea" />
  238 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
  239 + </PATH_ELEMENT>
  240 + <PATH_ELEMENT>
  241 + <option name="myItemId" value="sym_cea" />
  242 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  243 + </PATH_ELEMENT>
  244 + <PATH_ELEMENT>
  245 + <option name="myItemId" value="web" />
  246 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  247 + </PATH_ELEMENT>
  248 + <PATH_ELEMENT>
  249 + <option name="myItemId" value="bundles" />
  250 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  251 + </PATH_ELEMENT>
  252 + <PATH_ELEMENT>
  253 + <option name="myItemId" value="framework" />
  254 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  255 + </PATH_ELEMENT>
  256 + <PATH_ELEMENT>
  257 + <option name="myItemId" value="images" />
  258 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  259 + </PATH_ELEMENT>
  260 + </PATH>
  261 + <PATH>
  262 + <PATH_ELEMENT>
  263 + <option name="myItemId" value="sym_cea" />
  264 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
  265 + </PATH_ELEMENT>
  266 + <PATH_ELEMENT>
  267 + <option name="myItemId" value="sym_cea" />
  268 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  269 + </PATH_ELEMENT>
  270 + <PATH_ELEMENT>
  271 + <option name="myItemId" value="web" />
  272 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  273 + </PATH_ELEMENT>
  274 + <PATH_ELEMENT>
  275 + <option name="myItemId" value="bundles" />
  276 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  277 + </PATH_ELEMENT>
  278 + <PATH_ELEMENT>
  279 + <option name="myItemId" value="framework" />
  280 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  281 + </PATH_ELEMENT>
  282 + </PATH>
  283 + <PATH>
  284 + <PATH_ELEMENT>
  285 + <option name="myItemId" value="sym_cea" />
  286 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
  287 + </PATH_ELEMENT>
  288 + <PATH_ELEMENT>
  289 + <option name="myItemId" value="sym_cea" />
  290 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  291 + </PATH_ELEMENT>
  292 + <PATH_ELEMENT>
  293 + <option name="myItemId" value="src" />
  294 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  295 + </PATH_ELEMENT>
  296 + </PATH>
  297 + <PATH>
  298 + <PATH_ELEMENT>
  299 + <option name="myItemId" value="sym_cea" />
  300 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
  301 + </PATH_ELEMENT>
  302 + <PATH_ELEMENT>
  303 + <option name="myItemId" value="sym_cea" />
  304 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  305 + </PATH_ELEMENT>
  306 + <PATH_ELEMENT>
  307 + <option name="myItemId" value="src" />
  308 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  309 + </PATH_ELEMENT>
  310 + <PATH_ELEMENT>
  311 + <option name="myItemId" value="AppBundle" />
  312 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  313 + </PATH_ELEMENT>
  314 + </PATH>
  315 + <PATH>
  316 + <PATH_ELEMENT>
  317 + <option name="myItemId" value="sym_cea" />
  318 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
  319 + </PATH_ELEMENT>
  320 + <PATH_ELEMENT>
  321 + <option name="myItemId" value="sym_cea" />
  322 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  323 + </PATH_ELEMENT>
  324 + <PATH_ELEMENT>
  325 + <option name="myItemId" value="src" />
  326 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  327 + </PATH_ELEMENT>
  328 + <PATH_ELEMENT>
  329 + <option name="myItemId" value="AppBundle" />
  330 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  331 + </PATH_ELEMENT>
  332 + <PATH_ELEMENT>
  333 + <option name="myItemId" value="Form" />
  334 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  335 + </PATH_ELEMENT>
  336 + </PATH>
  337 + <PATH>
  338 + <PATH_ELEMENT>
  339 + <option name="myItemId" value="sym_cea" />
  340 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
  341 + </PATH_ELEMENT>
  342 + <PATH_ELEMENT>
  343 + <option name="myItemId" value="sym_cea" />
  344 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  345 + </PATH_ELEMENT>
  346 + <PATH_ELEMENT>
  347 + <option name="myItemId" value="src" />
  348 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  349 + </PATH_ELEMENT>
  350 + <PATH_ELEMENT>
  351 + <option name="myItemId" value="AppBundle" />
  352 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  353 + </PATH_ELEMENT>
  354 + <PATH_ELEMENT>
  355 + <option name="myItemId" value="Entity" />
  356 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  357 + </PATH_ELEMENT>
  358 + </PATH>
  359 + <PATH>
  360 + <PATH_ELEMENT>
  361 + <option name="myItemId" value="sym_cea" />
  362 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
  363 + </PATH_ELEMENT>
  364 + <PATH_ELEMENT>
  365 + <option name="myItemId" value="sym_cea" />
  366 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  367 + </PATH_ELEMENT>
  368 + <PATH_ELEMENT>
  369 + <option name="myItemId" value="src" />
  370 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  371 + </PATH_ELEMENT>
  372 + <PATH_ELEMENT>
  373 + <option name="myItemId" value="AppBundle" />
  374 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  375 + </PATH_ELEMENT>
  376 + <PATH_ELEMENT>
  377 + <option name="myItemId" value="Controller" />
  378 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  379 + </PATH_ELEMENT>
  380 + </PATH>
  381 + <PATH>
  382 + <PATH_ELEMENT>
  383 + <option name="myItemId" value="sym_cea" />
  384 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
  385 + </PATH_ELEMENT>
  386 + <PATH_ELEMENT>
  387 + <option name="myItemId" value="sym_cea" />
  388 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  389 + </PATH_ELEMENT>
  390 + <PATH_ELEMENT>
  391 + <option name="myItemId" value="app" />
  392 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  393 + </PATH_ELEMENT>
  394 + </PATH>
  395 + <PATH>
  396 + <PATH_ELEMENT>
  397 + <option name="myItemId" value="sym_cea" />
  398 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
  399 + </PATH_ELEMENT>
  400 + <PATH_ELEMENT>
  401 + <option name="myItemId" value="sym_cea" />
  402 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  403 + </PATH_ELEMENT>
  404 + <PATH_ELEMENT>
  405 + <option name="myItemId" value="app" />
  406 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  407 + </PATH_ELEMENT>
  408 + <PATH_ELEMENT>
  409 + <option name="myItemId" value="Resources" />
  410 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  411 + </PATH_ELEMENT>
  412 + <PATH_ELEMENT>
  413 + <option name="myItemId" value="views" />
  414 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  415 + </PATH_ELEMENT>
  416 + </PATH>
  417 + <PATH>
  418 + <PATH_ELEMENT>
  419 + <option name="myItemId" value="sym_cea" />
  420 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
  421 + </PATH_ELEMENT>
  422 + <PATH_ELEMENT>
  423 + <option name="myItemId" value="sym_cea" />
  424 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  425 + </PATH_ELEMENT>
  426 + <PATH_ELEMENT>
  427 + <option name="myItemId" value="app" />
  428 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  429 + </PATH_ELEMENT>
  430 + <PATH_ELEMENT>
  431 + <option name="myItemId" value="Resources" />
  432 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  433 + </PATH_ELEMENT>
  434 + <PATH_ELEMENT>
  435 + <option name="myItemId" value="views" />
  436 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  437 + </PATH_ELEMENT>
  438 + <PATH_ELEMENT>
  439 + <option name="myItemId" value="role" />
  440 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  441 + </PATH_ELEMENT>
  442 + </PATH>
  443 + <PATH>
  444 + <PATH_ELEMENT>
  445 + <option name="myItemId" value="sym_cea" />
  446 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
  447 + </PATH_ELEMENT>
  448 + <PATH_ELEMENT>
  449 + <option name="myItemId" value="sym_cea" />
  450 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  451 + </PATH_ELEMENT>
  452 + <PATH_ELEMENT>
  453 + <option name="myItemId" value="app" />
  454 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  455 + </PATH_ELEMENT>
  456 + <PATH_ELEMENT>
  457 + <option name="myItemId" value="Resources" />
  458 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  459 + </PATH_ELEMENT>
  460 + <PATH_ELEMENT>
  461 + <option name="myItemId" value="translations" />
  462 + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
  463 + </PATH_ELEMENT>
  464 + </PATH>
  465 + </subPane>
  466 + </pane>
  467 + </panes>
  468 + </component>
  469 + <component name="PropertiesComponent">
  470 + <property name="settings.editor.selected.configurable" value="configurable.group.tools" />
  471 + <property name="settings.editor.splitter.proportion" value="0.2" />
  472 + <property name="WebServerToolWindowFactoryState" value="false" />
  473 + <property name="js-jscs-nodeInterpreter" value="/usr/local/bin/node" />
  474 + </component>
  475 + <component name="RecentsManager">
  476 + <key name="MoveFile.RECENT_KEYS">
  477 + <recent name="$PROJECT_DIR$/app/Resources/translations" />
  478 + </key>
  479 + </component>
  480 + <component name="RunManager">
  481 + <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
  482 + <method />
  483 + </configuration>
  484 + <configuration default="true" type="PHPUnitRunConfigurationType" factoryName="PHPUnit">
  485 + <TestRunner />
  486 + <method />
  487 + </configuration>
  488 + <configuration default="true" type="PhpBehatConfigurationType" factoryName="Behat">
  489 + <BehatRunner />
  490 + <method />
  491 + </configuration>
  492 + <configuration default="true" type="PhpLocalRunConfigurationType" factoryName="PHP Console">
  493 + <method />
  494 + </configuration>
  495 + <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
  496 + <method />
  497 + </configuration>
  498 + <configuration default="true" type="js.build_tools.npm" factoryName="npm">
  499 + <command value="run-script" />
  500 + <scripts />
  501 + <envs />
  502 + <method />
  503 + </configuration>
  504 + </component>
  505 + <component name="ShelveChangesManager" show_recycled="false" />
  506 + <component name="TaskManager">
  507 + <task active="true" id="Default" summary="Default task">
  508 + <changelist id="5cb32f38-0c9f-4717-964b-38fbcbcb548a" name="Default" comment="" />
  509 + <created>1467201394766</created>
  510 + <option name="number" value="Default" />
  511 + <updated>1467201394766</updated>
  512 + </task>
  513 + <servers />
  514 + </component>
  515 + <component name="ToolWindowManager">
  516 + <frame x="0" y="-4" width="1440" height="904" extended-state="6" />
  517 + <editor active="true" />
  518 + <layout>
  519 + <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
  520 + <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="9" side_tool="false" content_ui="tabs" />
  521 + <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32917705" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
  522 + <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="0" side_tool="false" content_ui="tabs" />
  523 + <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="2" side_tool="false" content_ui="tabs" />
  524 + <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="combo" />
  525 + <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="0" side_tool="true" content_ui="tabs" />
  526 + <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32917705" sideWeight="0.5" order="0" side_tool="true" content_ui="tabs" />
  527 + <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" />
  528 + <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="7" side_tool="false" content_ui="tabs" />
  529 + <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="3" side_tool="false" content_ui="tabs" />
  530 + <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="2" side_tool="false" content_ui="tabs" />
  531 + <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
  532 + <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="6" side_tool="false" content_ui="tabs" />
  533 + <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
  534 + <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="8" side_tool="false" content_ui="tabs" />
  535 + <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="3" side_tool="false" content_ui="combo" />
  536 + </layout>
  537 + </component>
  538 + <component name="VcsContentAnnotationSettings">
  539 + <option name="myLimit" value="2678400000" />
  540 + </component>
  541 + <component name="XDebuggerManager">
  542 + <breakpoint-manager>
  543 + <option name="time" value="1" />
  544 + </breakpoint-manager>
  545 + <watches-manager />
  546 + </component>
  547 + <component name="editorHistoryManager">
  548 + <entry file="file://$PROJECT_DIR$/app/config/parameters.yml">
  549 + <provider selected="true" editor-type-id="text-editor">
  550 + <state vertical-scroll-proportion="0.0">
  551 + <caret line="4" column="29" selection-start-line="4" selection-start-column="29" selection-end-line="4" selection-end-column="29" />
  552 + <folding />
  553 + </state>
  554 + </provider>
  555 + </entry>
  556 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/Genero.php">
  557 + <provider selected="true" editor-type-id="text-editor">
  558 + <state vertical-scroll-proportion="-15.333333">
  559 + <caret line="23" column="52" selection-start-line="23" selection-start-column="52" selection-end-line="23" selection-end-column="52" />
  560 + <folding />
  561 + </state>
  562 + </provider>
  563 + </entry>
  564 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/PaisNacimiento.php">
  565 + <provider selected="true" editor-type-id="text-editor">
  566 + <state vertical-scroll-proportion="-5.3333335">
  567 + <caret line="8" column="0" selection-start-line="8" selection-start-column="0" selection-end-line="8" selection-end-column="0" />
  568 + <folding>
  569 + <element signature="e#6#97#0#PHP" expanded="false" />
  570 + </folding>
  571 + </state>
  572 + </provider>
  573 + </entry>
  574 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/DocumentoIdentidad.php">
  575 + <provider selected="true" editor-type-id="text-editor">
  576 + <state vertical-scroll-proportion="-5.3333335">
  577 + <caret line="8" column="0" selection-start-line="8" selection-start-column="0" selection-end-line="8" selection-end-column="0" />
  578 + <folding>
  579 + <element signature="e#6#92#0#PHP" expanded="false" />
  580 + </folding>
  581 + </state>
  582 + </provider>
  583 + </entry>
  584 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/EstadoCivil.php">
  585 + <provider selected="true" editor-type-id="text-editor">
  586 + <state vertical-scroll-proportion="-22.25926">
  587 + <caret line="81" column="5" selection-start-line="73" selection-start-column="4" selection-end-line="81" selection-end-column="5" />
  588 + <folding>
  589 + <element signature="e#6#92#0#PHP" expanded="false" />
  590 + </folding>
  591 + </state>
  592 + </provider>
  593 + </entry>
  594 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/Estatus.php">
  595 + <provider selected="true" editor-type-id="text-editor">
  596 + <state vertical-scroll-proportion="0.16912752">
  597 + <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
  598 + <folding>
  599 + <element signature="e#6#92#0#PHP" expanded="false" />
  600 + </folding>
  601 + </state>
  602 + </provider>
  603 + </entry>
  604 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/TipoInstitucion.php">
  605 + <provider selected="true" editor-type-id="text-editor">
  606 + <state vertical-scroll-proportion="0.16912752">
  607 + <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
  608 + <folding>
  609 + <element signature="e#6#92#0#PHP" expanded="false" />
  610 + </folding>
  611 + </state>
  612 + </provider>
  613 + </entry>
  614 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/Parroquia.php">
  615 + <provider selected="true" editor-type-id="text-editor">
  616 + <state vertical-scroll-proportion="0.5167785">
  617 + <caret line="122" column="0" selection-start-line="122" selection-start-column="0" selection-end-line="122" selection-end-column="0" />
  618 + <folding>
  619 + <element signature="e#6#92#0#PHP" expanded="true" />
  620 + </folding>
  621 + </state>
  622 + </provider>
  623 + </entry>
  624 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/Estado.php">
  625 + <provider selected="true" editor-type-id="text-editor">
  626 + <state vertical-scroll-proportion="0.16912752">
  627 + <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
  628 + <folding>
  629 + <element signature="e#6#92#0#PHP" expanded="false" />
  630 + </folding>
  631 + </state>
  632 + </provider>
  633 + </entry>
  634 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/EjeParroquia.php">
  635 + <provider selected="true" editor-type-id="text-editor">
  636 + <state vertical-scroll-proportion="2.2228189">
  637 + <caret line="92" column="29" selection-start-line="92" selection-start-column="29" selection-end-line="92" selection-end-column="29" />
  638 + <folding>
  639 + <element signature="e#6#92#0#PHP" expanded="false" />
  640 + </folding>
  641 + </state>
  642 + </provider>
  643 + </entry>
  644 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/Institucion.php">
  645 + <provider selected="true" editor-type-id="text-editor">
  646 + <state vertical-scroll-proportion="-2.271141">
  647 + <caret line="8" column="0" selection-start-line="8" selection-start-column="0" selection-end-line="8" selection-end-column="0" />
  648 + <folding>
  649 + <element signature="e#6#92#0#PHP" expanded="false" />
  650 + </folding>
  651 + </state>
  652 + </provider>
  653 + </entry>
  654 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/Eje.php">
  655 + <provider selected="true" editor-type-id="text-editor">
  656 + <state vertical-scroll-proportion="-0.12080537">
  657 + <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
  658 + <folding>
  659 + <element signature="e#6#92#0#PHP" expanded="false" />
  660 + </folding>
  661 + </state>
  662 + </provider>
  663 + </entry>
  664 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/Municipio.php">
  665 + <provider selected="true" editor-type-id="text-editor">
  666 + <state vertical-scroll-proportion="0.16912752">
  667 + <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
  668 + <folding>
  669 + <element signature="e#6#92#0#PHP" expanded="false" />
  670 + </folding>
  671 + </state>
  672 + </provider>
  673 + </entry>
  674 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Controller/DefaultController.php">
  675 + <provider selected="true" editor-type-id="text-editor">
  676 + <state vertical-scroll-proportion="-2.6666667">
  677 + <caret line="4" column="4" selection-start-line="4" selection-start-column="4" selection-end-line="4" selection-end-column="4" />
  678 + <folding />
  679 + </state>
  680 + </provider>
  681 + </entry>
  682 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/Nacionalidad.php">
  683 + <provider selected="true" editor-type-id="text-editor">
  684 + <state vertical-scroll-proportion="-2.6666667">
  685 + <caret line="21" column="7" selection-start-line="21" selection-start-column="7" selection-end-line="21" selection-end-column="7" />
  686 + <folding />
  687 + </state>
  688 + </provider>
  689 + </entry>
  690 + <entry file="file://$PROJECT_DIR$/app/Resources/views/registration/register.html.twig">
  691 + <provider selected="true" editor-type-id="text-editor">
  692 + <state vertical-scroll-proportion="-0.0">
  693 + <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="2" selection-end-column="16" />
  694 + <folding>
  695 + <element signature="e#12#26#0#Twig" expanded="false" />
  696 + </folding>
  697 + </state>
  698 + </provider>
  699 + </entry>
  700 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/Usuarios.php">
  701 + <provider selected="true" editor-type-id="text-editor">
  702 + <state vertical-scroll-proportion="-82.25926">
  703 + <caret line="176" column="19" selection-start-line="176" selection-start-column="19" selection-end-line="176" selection-end-column="19" />
  704 + <folding>
  705 + <element signature="e#6#92#0#PHP" expanded="true" />
  706 + <element signature="e#125#157#0#PHP" expanded="true" />
  707 + </folding>
  708 + </state>
  709 + </provider>
  710 + </entry>
  711 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/RolInstitucion.php">
  712 + <provider selected="true" editor-type-id="text-editor">
  713 + <state vertical-scroll-proportion="5.3333335">
  714 + <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
  715 + <folding />
  716 + </state>
  717 + </provider>
  718 + </entry>
  719 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Form/UserType.php">
  720 + <provider selected="true" editor-type-id="text-editor">
  721 + <state vertical-scroll-proportion="-10.0">
  722 + <caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="60" />
  723 + <folding>
  724 + <element signature="e#6#92#0#PHP" expanded="false" />
  725 + </folding>
  726 + </state>
  727 + </provider>
  728 + </entry>
  729 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Controller/RegistrationController.php">
  730 + <provider selected="true" editor-type-id="text-editor">
  731 + <state vertical-scroll-proportion="-15.592592">
  732 + <caret line="35" column="46" selection-start-line="33" selection-start-column="12" selection-end-line="35" selection-end-column="46" />
  733 + <folding>
  734 + <element signature="e#6#92#0#PHP" expanded="false" />
  735 + <element signature="e#127#155#0#PHP" expanded="false" />
  736 + <element signature="e#1434#1444#1#PHP" expanded="false" />
  737 + <element signature="e#1500#1533#0#PHP" expanded="false" />
  738 + </folding>
  739 + </state>
  740 + </provider>
  741 + </entry>
  742 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Form/UsuariosType.php">
  743 + <provider selected="true" editor-type-id="text-editor">
  744 + <state vertical-scroll-proportion="-12.666667">
  745 + <caret line="19" column="29" selection-start-line="19" selection-start-column="29" selection-end-line="19" selection-end-column="29" />
  746 + <folding>
  747 + <element signature="e#34#74#0#PHP" expanded="false" />
  748 + </folding>
  749 + </state>
  750 + </provider>
  751 + </entry>
  752 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Controller/UsuariosController.php">
  753 + <provider selected="true" editor-type-id="text-editor">
  754 + <state vertical-scroll-proportion="-14.0">
  755 + <caret line="50" column="20" selection-start-line="50" selection-start-column="20" selection-end-line="50" selection-end-column="20" />
  756 + <folding />
  757 + </state>
  758 + </provider>
  759 + </entry>
  760 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/Role.php">
  761 + <provider selected="true" editor-type-id="text-editor">
  762 + <state vertical-scroll-proportion="-8.666667">
  763 + <caret line="34" column="45" selection-start-line="34" selection-start-column="45" selection-end-line="34" selection-end-column="45" />
  764 + <folding />
  765 + </state>
  766 + </provider>
  767 + </entry>
  768 + <entry file="file://$PROJECT_DIR$/app/Resources/views/security/login.html.twig">
  769 + <provider selected="true" editor-type-id="text-editor">
  770 + <state vertical-scroll-proportion="-10.666667">
  771 + <caret line="16" column="5" selection-start-line="16" selection-start-column="5" selection-end-line="16" selection-end-column="5" />
  772 + <folding>
  773 + <element signature="e#12#26#0#Twig" expanded="true" />
  774 + <element signature="e#175#180#0#Twig" expanded="true" />
  775 + </folding>
  776 + </state>
  777 + </provider>
  778 + </entry>
  779 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Controller/SecurityController.php">
  780 + <provider selected="true" editor-type-id="text-editor">
  781 + <state vertical-scroll-proportion="-17.333334">
  782 + <caret line="26" column="0" selection-start-line="26" selection-start-column="0" selection-end-line="26" selection-end-column="0" />
  783 + <folding>
  784 + <element signature="e#6#92#0#PHP" expanded="false" />
  785 + <element signature="e#178#235#0#PHP" expanded="false" />
  786 + <element signature="e#846#872#0#PHP" expanded="false" />
  787 + </folding>
  788 + </state>
  789 + </provider>
  790 + </entry>
  791 + <entry file="file://$PROJECT_DIR$/app/config/routing.yml">
  792 + <provider selected="true" editor-type-id="text-editor">
  793 + <state vertical-scroll-proportion="0.0">
  794 + <caret line="3" column="0" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
  795 + <folding>
  796 + <marker date="1467220669448" expanded="true" signature="0:69" placeholder="app:" />
  797 + </folding>
  798 + </state>
  799 + </provider>
  800 + </entry>
  801 + <entry file="file://$PROJECT_DIR$/web/bundles/framework/images/blue_picto_less.gif">
  802 + <provider selected="true" editor-type-id="images">
  803 + <state />
  804 + </provider>
  805 + </entry>
  806 + <entry file="file://$PROJECT_DIR$/web/bundles/framework/images/logo_symfony.png">
  807 + <provider selected="true" editor-type-id="images">
  808 + <state />
  809 + </provider>
  810 + </entry>
  811 + <entry file="file://$PROJECT_DIR$/web/bundles/framework/images/grey_magnifier.png">
  812 + <provider selected="true" editor-type-id="images">
  813 + <state />
  814 + </provider>
  815 + </entry>
  816 + <entry file="file://$PROJECT_DIR$/web/bundles/framework/images/blue_picto_more.gif">
  817 + <provider selected="true" editor-type-id="images">
  818 + <state />
  819 + </provider>
  820 + </entry>
  821 + <entry file="file://$PROJECT_DIR$/web/bundles/framework/css/body.css">
  822 + <provider selected="true" editor-type-id="text-editor">
  823 + <state vertical-scroll-proportion="0.0">
  824 + <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
  825 + <folding />
  826 + </state>
  827 + </provider>
  828 + </entry>
  829 + <entry file="file://$PROJECT_DIR$/.bowerrc">
  830 + <provider selected="true" editor-type-id="text-editor">
  831 + <state vertical-scroll-proportion="-1.3333334">
  832 + <caret line="2" column="1" selection-start-line="2" selection-start-column="1" selection-end-line="2" selection-end-column="1" />
  833 + <folding />
  834 + </state>
  835 + </provider>
  836 + </entry>
  837 + <entry file="file://$PROJECT_DIR$/app/Resources/views/default/index.html.twig">
  838 + <provider selected="true" editor-type-id="text-editor">
  839 + <state vertical-scroll-proportion="-4.0">
  840 + <caret line="6" column="68" selection-start-line="6" selection-start-column="68" selection-end-line="6" selection-end-column="68" />
  841 + <folding>
  842 + <element signature="e#3361#3367#0#Twig" expanded="true" />
  843 + </folding>
  844 + </state>
  845 + </provider>
  846 + </entry>
  847 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/TipoPersona.php">
  848 + <provider selected="true" editor-type-id="text-editor">
  849 + <state vertical-scroll-proportion="0.33825505">
  850 + <caret line="19" column="3" selection-start-line="19" selection-start-column="3" selection-end-line="19" selection-end-column="3" />
  851 + <folding />
  852 + </state>
  853 + </provider>
  854 + </entry>
  855 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/AreaPersona.php">
  856 + <provider selected="true" editor-type-id="text-editor">
  857 + <state vertical-scroll-proportion="0.6302521">
  858 + <caret line="25" column="74" selection-start-line="25" selection-start-column="60" selection-end-line="25" selection-end-column="74" />
  859 + <folding>
  860 + <element signature="e#6#92#0#PHP" expanded="false" />
  861 + </folding>
  862 + </state>
  863 + </provider>
  864 + </entry>
  865 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/Rol.php">
  866 + <provider selected="true" editor-type-id="text-editor">
  867 + <state vertical-scroll-proportion="-7.827586">
  868 + <caret line="58" column="90" selection-start-line="58" selection-start-column="85" selection-end-line="58" selection-end-column="90" />
  869 + <folding />
  870 + </state>
  871 + </provider>
  872 + </entry>
  873 + <entry file="file://$PROJECT_DIR$/app/config/security.yml">
  874 + <provider selected="true" editor-type-id="text-editor">
  875 + <state vertical-scroll-proportion="0.0">
  876 + <caret line="37" column="52" selection-start-line="37" selection-start-column="52" selection-end-line="37" selection-end-column="52" />
  877 + <folding />
  878 + </state>
  879 + </provider>
  880 + </entry>
  881 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Controller/RoleController.php">
  882 + <provider selected="true" editor-type-id="text-editor">
  883 + <state vertical-scroll-proportion="-6.0">
  884 + <caret line="14" column="12" selection-start-line="14" selection-start-column="12" selection-end-line="14" selection-end-column="12" />
  885 + <folding />
  886 + </state>
  887 + </provider>
  888 + </entry>
  889 + <entry file="file://$PROJECT_DIR$/app/Resources/views/role/index.html.twig">
  890 + <provider selected="true" editor-type-id="text-editor">
  891 + <state vertical-scroll-proportion="-25.333334">
  892 + <caret line="38" column="9" selection-start-line="38" selection-start-column="9" selection-end-line="38" selection-end-column="9" />
  893 + <folding>
  894 + <element signature="e#12#26#0#Twig" expanded="true" />
  895 + </folding>
  896 + </state>
  897 + </provider>
  898 + </entry>
  899 + <entry file="file://$PROJECT_DIR$/app/Resources/views/base.html.twig">
  900 + <provider selected="true" editor-type-id="text-editor">
  901 + <state vertical-scroll-proportion="-8.666667">
  902 + <caret line="13" column="10" selection-start-line="13" selection-start-column="10" selection-end-line="13" selection-end-column="10" />
  903 + <folding />
  904 + </state>
  905 + </provider>
  906 + </entry>
  907 + <entry file="file://$PROJECT_DIR$/src/AppBundle/Entity/Persona.php">
  908 + <provider selected="true" editor-type-id="text-editor">
  909 + <state vertical-scroll-proportion="-8.896552">
  910 + <caret line="617" column="0" selection-start-line="617" selection-start-column="0" selection-end-line="617" selection-end-column="0" />
  911 + <folding />
  912 + </state>
  913 + </provider>
  914 + </entry>
  915 + <entry file="file://$PROJECT_DIR$/app/cache/dev/appDevDebugProjectContainer.php">
  916 + <provider selected="true" editor-type-id="text-editor">
  917 + <state vertical-scroll-proportion="0.3318584">
  918 + <caret line="2952" column="15619" selection-start-line="2952" selection-start-column="15619" selection-end-line="2952" selection-end-column="15619" />
  919 + <folding />
  920 + </state>
  921 + </provider>
  922 + </entry>
  923 + <entry file="file://$PROJECT_DIR$/app/config/config.yml">
  924 + <provider selected="true" editor-type-id="text-editor">
  925 + <state vertical-scroll-proportion="0.0">
  926 + <caret line="12" column="38" selection-start-line="12" selection-start-column="38" selection-end-line="12" selection-end-column="38" />
  927 + <folding />
  928 + </state>
  929 + </provider>
  930 + </entry>
  931 + <entry file="file://$PROJECT_DIR$/app/Resources/translations/messages.es.xlf">
  932 + <provider selected="true" editor-type-id="text-editor">
  933 + <state vertical-scroll-proportion="0.51295334">
  934 + <caret line="22" column="8" selection-start-line="22" selection-start-column="8" selection-end-line="22" selection-end-column="8" />
  935 + <folding />
  936 + </state>
  937 + </provider>
  938 + </entry>
  939 + </component>
  940 +</project>
0 941 \ No newline at end of file
... ...
README.md
... ... @@ -0,0 +1,4 @@
  1 +sym_cea
  2 +=======
  3 +
  4 +A Symfony project created on June 29, 2016, 7:53 am.
... ...
app/.htaccess
... ... @@ -0,0 +1,7 @@
  1 +<IfModule mod_authz_core.c>
  2 + Require all denied
  3 +</IfModule>
  4 +<IfModule !mod_authz_core.c>
  5 + Order deny,allow
  6 + Deny from all
  7 +</IfModule>
... ...
app/AppCache.php
... ... @@ -0,0 +1,7 @@
  1 +<?php
  2 +
  3 +use Symfony\Bundle\FrameworkBundle\HttpCache\HttpCache;
  4 +
  5 +class AppCache extends HttpCache
  6 +{
  7 +}
... ...
app/AppKernel.php
... ... @@ -0,0 +1,35 @@
  1 +<?php
  2 +
  3 +use Symfony\Component\HttpKernel\Kernel;
  4 +use Symfony\Component\Config\Loader\LoaderInterface;
  5 +
  6 +class AppKernel extends Kernel
  7 +{
  8 + public function registerBundles()
  9 + {
  10 + $bundles = array(
  11 + new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
  12 + new Symfony\Bundle\SecurityBundle\SecurityBundle(),
  13 + new Symfony\Bundle\TwigBundle\TwigBundle(),
  14 + new Symfony\Bundle\MonologBundle\MonologBundle(),
  15 + new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
  16 + new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
  17 + new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
  18 + new AppBundle\AppBundle(),
  19 + );
  20 +
  21 + if (in_array($this->getEnvironment(), array('dev', 'test'), true)) {
  22 + $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
  23 + $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
  24 + $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
  25 + $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
  26 + }
  27 +
  28 + return $bundles;
  29 + }
  30 +
  31 + public function registerContainerConfiguration(LoaderInterface $loader)
  32 + {
  33 + $loader->load($this->getRootDir().'/config/config_'.$this->getEnvironment().'.yml');
  34 + }
  35 +}
... ...
app/Resources/translations/messages.es.xlf
... ... @@ -0,0 +1,23 @@
  1 +<?xml version="1.0"?>
  2 +<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
  3 + <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
  4 + <body>
  5 + <trans-unit id="Password">
  6 + <source>Password</source>
  7 + <target>Contraseña</target>
  8 + </trans-unit>
  9 +
  10 + <trans-unit id="repeat_password">
  11 + <source>Repeat Password</source>
  12 + <target>Repetir Contraseña</target>
  13 + </trans-unit>
  14 +
  15 +
  16 + <trans-unit id="username">
  17 + <source>Username</source>
  18 + <target>Nombre de Usuario</target>
  19 + </trans-unit>
  20 +
  21 + </body>
  22 + </file>
  23 +</xliff>
0 24 \ No newline at end of file
... ...
app/Resources/views/base.html.twig
... ... @@ -0,0 +1,17 @@
  1 +<!DOCTYPE html>
  2 +<html>
  3 + <head>
  4 + <meta charset="UTF-8" />
  5 + <title>{% block title %}CEA | UBV!{% endblock %}</title>
  6 + {% block stylesheets %}
  7 + <link rel="stylesheet" href="{{ asset('assets/vendor/bootstrap/dist/css/bootstrap.min.css') }}">
  8 + {% endblock %}
  9 + <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
  10 + </head>
  11 + <body>
  12 + <div class="container">
  13 + {% block body %}{% endblock %}
  14 + </div>
  15 + {% block javascripts %}{% endblock %}
  16 + </body>
  17 +</html>
... ...
app/Resources/views/default/index.html.twig
... ... @@ -0,0 +1,79 @@
  1 +{% extends 'base.html.twig' %}
  2 +
  3 +{% block body %}
  4 + <div id="wrapper">
  5 + <div id="container">
  6 + <div id="welcome">
  7 + <h1><span>Bienvenidos al mejorado sistema del</span>CEA con Symfony {{ constant('Symfony\\Component\\HttpKernel\\Kernel::VERSION') }}</h1>
  8 + </div>
  9 +
  10 + <div id="status">
  11 + <p>
  12 + <svg id="icon-status" width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1671 566q0 40-28 68l-724 724-136 136q-28 28-68 28t-68-28l-136-136-362-362q-28-28-28-68t28-68l136-136q28-28 68-28t68 28l294 295 656-657q28-28 68-28t68 28l136 136q28 28 28 68z" fill="#759E1A"/></svg>
  13 +
  14 + Your application is now ready. You can start working on it at:
  15 + <code>{{ base_dir }}/</code>
  16 + </p>
  17 + </div>
  18 +
  19 + <div id="next">
  20 + <h2>What's next?</h2>
  21 + <p>
  22 + <svg id="icon-book" version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="-12.5 9 64 64" enable-background="new -12.5 9 64 64" xml:space="preserve">
  23 + <path fill="#AAA" d="M6.8,40.8c2.4,0.8,4.5-0.7,4.9-2.5c0.2-1.2-0.3-2.1-1.3-3.2l-0.8-0.8c-0.4-0.5-0.6-1.3-0.2-1.9
  24 + c0.4-0.5,0.9-0.8,1.8-0.5c1.3,0.4,1.9,1.3,2.9,2.2c-0.4,1.4-0.7,2.9-0.9,4.2l-0.2,1c-0.7,4-1.3,6.2-2.7,7.5
  25 + c-0.3,0.3-0.7,0.5-1.3,0.6c-0.3,0-0.4-0.3-0.4-0.3c0-0.3,0.2-0.3,0.3-0.4c0.2-0.1,0.5-0.3,0.4-0.8c0-0.7-0.6-1.3-1.3-1.3
  26 + c-0.6,0-1.4,0.6-1.4,1.7s1,1.9,2.4,1.8c0.8,0,2.5-0.3,4.2-2.5c2-2.5,2.5-5.4,2.9-7.4l0.5-2.8c0.3,0,0.5,0.1,0.8,0.1
  27 + c2.4,0.1,3.7-1.3,3.7-2.3c0-0.6-0.3-1.2-0.9-1.2c-0.4,0-0.8,0.3-1,0.8c-0.1,0.6,0.8,1.1,0.1,1.5c-0.5,0.3-1.4,0.6-2.7,0.4l0.3-1.3
  28 + c0.5-2.6,1-5.7,3.2-5.8c0.2,0,0.8,0,0.8,0.4c0,0.2,0,0.2-0.2,0.5c-0.2,0.3-0.3,0.4-0.2,0.7c0,0.7,0.5,1.1,1.2,1.1
  29 + c0.9,0,1.2-1,1.2-1.4c0-1.2-1.2-1.8-2.6-1.8c-1.5,0.1-2.8,0.9-3.7,2.1c-1.1,1.3-1.8,2.9-2.3,4.5c-0.9-0.8-1.6-1.8-3.1-2.3
  30 + c-1.1-0.7-2.3-0.5-3.4,0.3c-0.5,0.4-0.8,1-1,1.6c-0.4,1.5,0.4,2.9,0.8,3.4l0.9,1c0.2,0.2,0.6,0.8,0.4,1.5c-0.3,0.8-1.2,1.3-2.1,1
  31 + c-0.4-0.2-1-0.5-0.9-0.9c0.1-0.2,0.2-0.3,0.3-0.5s0.1-0.3,0.1-0.3c0.2-0.6-0.1-1.4-0.7-1.6c-0.6-0.2-1.2,0-1.3,0.8
  32 + C4.3,38.4,4.7,40,6.8,40.8z M46.1,20.9c0-4.2-3.2-7.5-7.1-7.5h-3.8C34.8,10.8,32.7,9,30.2,9L-2.3,9.1c-2.8,0.1-4.9,2.4-4.9,5.4
  33 + L-7,58.6c0,4.8,8.1,13.9,11.6,14.1l34.7-0.1c3.9,0,7-3.4,7-7.6L46.1,20.9z M-0.3,36.4c0-8.6,6.5-15.6,14.5-15.6
  34 + c8,0,14.5,7,14.5,15.6S22.1,52,14.2,52C6.1,52-0.3,45-0.3,36.4z M42.1,65.1c0,1.8-1.5,3.1-3.1,3.1H4.6c-0.7,0-3-1.8-4.5-4.4h30.4
  35 + c2.8,0,5-2.4,5-5.4V17.9h3.7c1.6,0,2.9,1.4,2.9,3.1V65.1L42.1,65.1z"/>
  36 + </svg>
  37 +
  38 + Read the documentation to learn
  39 + <a href="http://symfony.com/doc/{{ constant('Symfony\\Component\\HttpKernel\\Kernel::VERSION')[:3] }}/book/page_creation.html">
  40 + How to create your first page in Symfony
  41 + </a>
  42 + {% if app.user %}
  43 + <a href="{{ path('logout') }}" >logout</a>
  44 + {% endif %}
  45 + </p>
  46 + </div>
  47 +
  48 + </div>
  49 + </div>
  50 +{% endblock %}
  51 +
  52 +{% block stylesheets %}
  53 +<style>
  54 + body { background: #F5F5F5; font: 18px/1.5 sans-serif; }
  55 + h1, h2 { line-height: 1.2; margin: 0 0 .5em; }
  56 + h1 { font-size: 36px; }
  57 + h2 { font-size: 21px; margin-bottom: 1em; }
  58 + p { margin: 0 0 1em 0; }
  59 + a { color: #0000F0; }
  60 + a:hover { text-decoration: none; }
  61 + code { background: #F5F5F5; max-width: 100px; padding: 2px 6px; word-wrap: break-word; }
  62 + #wrapper { background: #FFF; margin: 1em auto; max-width: 800px; width: 95%; }
  63 + #container { padding: 2em; }
  64 + #welcome, #status { margin-bottom: 2em; }
  65 + #welcome h1 span { display: block; font-size: 75%; }
  66 + #icon-status, #icon-book { float: left; height: 64px; margin-right: 1em; margin-top: -4px; width: 64px; }
  67 + #icon-book { display: none; }
  68 +
  69 + @media (min-width: 768px) {
  70 + #wrapper { width: 80%; margin: 2em auto; }
  71 + #icon-book { display: inline-block; }
  72 + #status a, #next a { display: block; }
  73 +
  74 + @-webkit-keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } }
  75 + @keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } }
  76 + .sf-toolbar { opacity: 0; -webkit-animation: fade-in 1s .2s forwards; animation: fade-in 1s .2s forwards;}
  77 + }
  78 +</style>
  79 +{% endblock %}
... ...
app/Resources/views/registration/register.html.twig
... ... @@ -0,0 +1,11 @@
  1 +{% extends 'base.html.twig' %}
  2 +
  3 +{% block body %}
  4 +{{ form_start(form) }}
  5 + {{ form_row(form.username) }}
  6 + {{ form_row(form.plainPassword.first) }}
  7 + {{ form_row(form.plainPassword.second) }}
  8 +
  9 +<button type="submit">Register!</button>
  10 +{{ form_end(form) }}
  11 +{% endblock %}
0 12 \ No newline at end of file
... ...
app/Resources/views/role/edit.html.twig
... ... @@ -0,0 +1,21 @@
  1 +{% extends 'base.html.twig' %}
  2 +
  3 +{% block body %}
  4 + <h1>Role edit</h1>
  5 +
  6 + {{ form_start(edit_form) }}
  7 + {{ form_widget(edit_form) }}
  8 + <input type="submit" value="Edit" />
  9 + {{ form_end(edit_form) }}
  10 +
  11 + <ul>
  12 + <li>
  13 + <a href="{{ path('role_index') }}">Back to the list</a>
  14 + </li>
  15 + <li>
  16 + {{ form_start(delete_form) }}
  17 + <input type="submit" value="Delete">
  18 + {{ form_end(delete_form) }}
  19 + </li>
  20 + </ul>
  21 +{% endblock %}
... ...
app/Resources/views/role/index.html.twig
... ... @@ -0,0 +1,40 @@
  1 +{% extends 'base.html.twig' %}
  2 +
  3 +{% block body %}
  4 +
  5 + <h1>Role list</h1>
  6 +
  7 + <table>
  8 + <thead>
  9 + <tr>
  10 + <th>Name</th>
  11 + <th>Id</th>
  12 + <th>Actions</th>
  13 + </tr>
  14 + </thead>
  15 + <tbody>
  16 + {% for role in roles %}
  17 + <tr>
  18 + <td><a href="{{ path('role_show', { 'id': role.id }) }}">{{ role.name }}</a></td>
  19 + <td>{{ role.id }}</td>
  20 + <td>
  21 + <ul>
  22 + <li>
  23 + <a href="{{ path('role_show', { 'id': role.id }) }}">show</a>
  24 + </li>
  25 + <li>
  26 + <a href="{{ path('role_edit', { 'id': role.id }) }}">edit</a>
  27 + </li>
  28 + </ul>
  29 + </td>
  30 + </tr>
  31 + {% endfor %}
  32 + </tbody>
  33 + </table>
  34 +
  35 + <ul>
  36 + <li>
  37 + <a href="{{ path('role_new') }}">Create a new entry</a>
  38 + </li>
  39 + </ul>
  40 +{% endblock %}
... ...
app/Resources/views/role/new.html.twig
... ... @@ -0,0 +1,16 @@
  1 +{% extends 'base.html.twig' %}
  2 +
  3 +{% block body %}
  4 + <h1>Role creation</h1>
  5 +
  6 + {{ form_start(form) }}
  7 + {{ form_widget(form) }}
  8 + <input type="submit" value="Create" />
  9 + {{ form_end(form) }}
  10 +
  11 + <ul>
  12 + <li>
  13 + <a href="{{ path('role_index') }}">Back to the list</a>
  14 + </li>
  15 + </ul>
  16 +{% endblock %}
... ...
app/Resources/views/role/show.html.twig
... ... @@ -0,0 +1,32 @@
  1 +{% extends 'base.html.twig' %}
  2 +
  3 +{% block body %}
  4 + <h1>Role</h1>
  5 +
  6 + <table>
  7 + <tbody>
  8 + <tr>
  9 + <th>Name</th>
  10 + <td>{{ role.name }}</td>
  11 + </tr>
  12 + <tr>
  13 + <th>Id</th>
  14 + <td>{{ role.id }}</td>
  15 + </tr>
  16 + </tbody>
  17 + </table>
  18 +
  19 + <ul>
  20 + <li>
  21 + <a href="{{ path('role_index') }}">Back to the list</a>
  22 + </li>
  23 + <li>
  24 + <a href="{{ path('role_edit', { 'id': role.id }) }}">Edit</a>
  25 + </li>
  26 + <li>
  27 + {{ form_start(delete_form) }}
  28 + <input type="submit" value="Delete">
  29 + {{ form_end(delete_form) }}
  30 + </li>
  31 + </ul>
  32 +{% endblock %}
... ...
app/Resources/views/security/login.html.twig
... ... @@ -0,0 +1,27 @@
  1 +{% extends 'base.html.twig' %}
  2 +
  3 +{% block body %}
  4 +{% if error %}
  5 + <div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
  6 +{% endif %}
  7 +
  8 +<form action="{{ path('login') }}" method="post">
  9 + <label for="username">Username:</label>
  10 + <input type="text" id="username" name="_username" value="{{ last_username }}" />
  11 +
  12 + <label for="password">Password:</label>
  13 + <input type="password" id="password" name="_password" />
  14 +
  15 + <input type="hidden" name="_csrf_token"
  16 + value="{{ csrf_token('authenticate') }}"
  17 + >
  18 +
  19 + {#
  20 + If you want to control the URL the user
  21 + is redirected to on success (more details below)
  22 + <input type="hidden" name="_target_path" value="/account" />
  23 + #}
  24 +
  25 + <button type="submit">login</button>
  26 +</form>
  27 +{% endblock %}
0 28 \ No newline at end of file
... ...
app/Resources/views/usuarios/edit.html.twig
... ... @@ -0,0 +1,21 @@
  1 +{% extends 'base.html.twig' %}
  2 +
  3 +{% block body %}
  4 + <h1>Usuarios edit</h1>
  5 +
  6 + {{ form_start(edit_form) }}
  7 + {{ form_widget(edit_form) }}
  8 + <input type="submit" value="Edit" />
  9 + {{ form_end(edit_form) }}
  10 +
  11 + <ul>
  12 + <li>
  13 + <a href="{{ path('admin_usuarios_index') }}">Back to the list</a>
  14 + </li>
  15 + <li>
  16 + {{ form_start(delete_form) }}
  17 + <input type="submit" value="Delete">
  18 + {{ form_end(delete_form) }}
  19 + </li>
  20 + </ul>
  21 +{% endblock %}
... ...
app/Resources/views/usuarios/index.html.twig
... ... @@ -0,0 +1,41 @@
  1 +{% extends 'base.html.twig' %}
  2 +
  3 +{% block body %}
  4 + <h1>Usuarios list</h1>
  5 +
  6 + <table>
  7 + <thead>
  8 + <tr>
  9 + <th>Username</th>
  10 + <th>Password</th>
  11 + <th>Id</th>
  12 + <th>Actions</th>
  13 + </tr>
  14 + </thead>
  15 + <tbody>
  16 + {% for usuario in usuarios %}
  17 + <tr>
  18 + <td><a href="{{ path('admin_usuarios_show', { 'id': usuario.id }) }}">{{ usuario.username }}</a></td>
  19 + <td>{{ usuario.password }}</td>
  20 + <td>{{ usuario.id }}</td>
  21 + <td>
  22 + <ul>
  23 + <li>
  24 + <a href="{{ path('admin_usuarios_show', { 'id': usuario.id }) }}">show</a>
  25 + </li>
  26 + <li>
  27 + <a href="{{ path('admin_usuarios_edit', { 'id': usuario.id }) }}">edit</a>
  28 + </li>
  29 + </ul>
  30 + </td>
  31 + </tr>
  32 + {% endfor %}
  33 + </tbody>
  34 + </table>
  35 +
  36 + <ul>
  37 + <li>
  38 + <a href="{{ path('admin_usuarios_new') }}">Create a new entry</a>
  39 + </li>
  40 + </ul>
  41 +{% endblock %}
... ...
app/Resources/views/usuarios/new.html.twig
... ... @@ -0,0 +1,16 @@
  1 +{% extends 'base.html.twig' %}
  2 +
  3 +{% block body %}
  4 + <h1>Usuarios creation</h1>
  5 +
  6 + {{ form_start(form) }}
  7 + {{ form_widget(form) }}
  8 + <input type="submit" value="Create" />
  9 + {{ form_end(form) }}
  10 +
  11 + <ul>
  12 + <li>
  13 + <a href="{{ path('admin_usuarios_index') }}">Back to the list</a>
  14 + </li>
  15 + </ul>
  16 +{% endblock %}
... ...
app/Resources/views/usuarios/show.html.twig
... ... @@ -0,0 +1,36 @@
  1 +{% extends 'base.html.twig' %}
  2 +
  3 +{% block body %}
  4 + <h1>Usuarios</h1>
  5 +
  6 + <table>
  7 + <tbody>
  8 + <tr>
  9 + <th>Username</th>
  10 + <td>{{ usuario.username }}</td>
  11 + </tr>
  12 + <tr>
  13 + <th>Password</th>
  14 + <td>{{ usuario.password }}</td>
  15 + </tr>
  16 + <tr>
  17 + <th>Id</th>
  18 + <td>{{ usuario.id }}</td>
  19 + </tr>
  20 + </tbody>
  21 + </table>
  22 +
  23 + <ul>
  24 + <li>
  25 + <a href="{{ path('admin_usuarios_index') }}">Back to the list</a>
  26 + </li>
  27 + <li>
  28 + <a href="{{ path('admin_usuarios_edit', { 'id': usuario.id }) }}">Edit</a>
  29 + </li>
  30 + <li>
  31 + {{ form_start(delete_form) }}
  32 + <input type="submit" value="Delete">
  33 + {{ form_end(delete_form) }}
  34 + </li>
  35 + </ul>
  36 +{% endblock %}
... ...
app/SymfonyRequirements.php
... ... @@ -0,0 +1,774 @@
  1 +<?php
  2 +
  3 +/*
  4 + * This file is part of the Symfony package.
  5 + *
  6 + * (c) Fabien Potencier <fabien@symfony.com>
  7 + *
  8 + * For the full copyright and license information, please view the LICENSE
  9 + * file that was distributed with this source code.
  10 + */
  11 +
  12 +/*
  13 + * Users of PHP 5.2 should be able to run the requirements checks.
  14 + * This is why the file and all classes must be compatible with PHP 5.2+
  15 + * (e.g. not using namespaces and closures).
  16 + *
  17 + * ************** CAUTION **************
  18 + *
  19 + * DO NOT EDIT THIS FILE as it will be overridden by Composer as part of
  20 + * the installation/update process. The original file resides in the
  21 + * SensioDistributionBundle.
  22 + *
  23 + * ************** CAUTION **************
  24 + */
  25 +
  26 +/**
  27 + * Represents a single PHP requirement, e.g. an installed extension.
  28 + * It can be a mandatory requirement or an optional recommendation.
  29 + * There is a special subclass, named PhpIniRequirement, to check a php.ini configuration.
  30 + *
  31 + * @author Tobias Schultze <http://tobion.de>
  32 + */
  33 +class Requirement
  34 +{
  35 + private $fulfilled;
  36 + private $testMessage;
  37 + private $helpText;
  38 + private $helpHtml;
  39 + private $optional;
  40 +
  41 + /**
  42 + * Constructor that initializes the requirement.
  43 + *
  44 + * @param bool $fulfilled Whether the requirement is fulfilled
  45 + * @param string $testMessage The message for testing the requirement
  46 + * @param string $helpHtml The help text formatted in HTML for resolving the problem
  47 + * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
  48 + * @param bool $optional Whether this is only an optional recommendation not a mandatory requirement
  49 + */
  50 + public function __construct($fulfilled, $testMessage, $helpHtml, $helpText = null, $optional = false)
  51 + {
  52 + $this->fulfilled = (bool) $fulfilled;
  53 + $this->testMessage = (string) $testMessage;
  54 + $this->helpHtml = (string) $helpHtml;
  55 + $this->helpText = null === $helpText ? strip_tags($this->helpHtml) : (string) $helpText;
  56 + $this->optional = (bool) $optional;
  57 + }
  58 +
  59 + /**
  60 + * Returns whether the requirement is fulfilled.
  61 + *
  62 + * @return bool true if fulfilled, otherwise false
  63 + */
  64 + public function isFulfilled()
  65 + {
  66 + return $this->fulfilled;
  67 + }
  68 +
  69 + /**
  70 + * Returns the message for testing the requirement.
  71 + *
  72 + * @return string The test message
  73 + */
  74 + public function getTestMessage()
  75 + {
  76 + return $this->testMessage;
  77 + }
  78 +
  79 + /**
  80 + * Returns the help text for resolving the problem.
  81 + *
  82 + * @return string The help text
  83 + */
  84 + public function getHelpText()
  85 + {
  86 + return $this->helpText;
  87 + }
  88 +
  89 + /**
  90 + * Returns the help text formatted in HTML.
  91 + *
  92 + * @return string The HTML help
  93 + */
  94 + public function getHelpHtml()
  95 + {
  96 + return $this->helpHtml;
  97 + }
  98 +
  99 + /**
  100 + * Returns whether this is only an optional recommendation and not a mandatory requirement.
  101 + *
  102 + * @return bool true if optional, false if mandatory
  103 + */
  104 + public function isOptional()
  105 + {
  106 + return $this->optional;
  107 + }
  108 +}
  109 +
  110 +/**
  111 + * Represents a PHP requirement in form of a php.ini configuration.
  112 + *
  113 + * @author Tobias Schultze <http://tobion.de>
  114 + */
  115 +class PhpIniRequirement extends Requirement
  116 +{
  117 + /**
  118 + * Constructor that initializes the requirement.
  119 + *
  120 + * @param string $cfgName The configuration name used for ini_get()
  121 + * @param bool|callback $evaluation Either a boolean indicating whether the configuration should evaluate to true or false,
  122 + * or a callback function receiving the configuration value as parameter to determine the fulfillment of the requirement
  123 + * @param bool $approveCfgAbsence If true the Requirement will be fulfilled even if the configuration option does not exist, i.e. ini_get() returns false.
  124 + * This is helpful for abandoned configs in later PHP versions or configs of an optional extension, like Suhosin.
  125 + * Example: You require a config to be true but PHP later removes this config and defaults it to true internally.
  126 + * @param string|null $testMessage The message for testing the requirement (when null and $evaluation is a boolean a default message is derived)
  127 + * @param string|null $helpHtml The help text formatted in HTML for resolving the problem (when null and $evaluation is a boolean a default help is derived)
  128 + * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
  129 + * @param bool $optional Whether this is only an optional recommendation not a mandatory requirement
  130 + */
  131 + public function __construct($cfgName, $evaluation, $approveCfgAbsence = false, $testMessage = null, $helpHtml = null, $helpText = null, $optional = false)
  132 + {
  133 + $cfgValue = ini_get($cfgName);
  134 +
  135 + if (is_callable($evaluation)) {
  136 + if (null === $testMessage || null === $helpHtml) {
  137 + throw new InvalidArgumentException('You must provide the parameters testMessage and helpHtml for a callback evaluation.');
  138 + }
  139 +
  140 + $fulfilled = call_user_func($evaluation, $cfgValue);
  141 + } else {
  142 + if (null === $testMessage) {
  143 + $testMessage = sprintf('%s %s be %s in php.ini',
  144 + $cfgName,
  145 + $optional ? 'should' : 'must',
  146 + $evaluation ? 'enabled' : 'disabled'
  147 + );
  148 + }
  149 +
  150 + if (null === $helpHtml) {
  151 + $helpHtml = sprintf('Set <strong>%s</strong> to <strong>%s</strong> in php.ini<a href="#phpini">*</a>.',
  152 + $cfgName,
  153 + $evaluation ? 'on' : 'off'
  154 + );
  155 + }
  156 +
  157 + $fulfilled = $evaluation == $cfgValue;
  158 + }
  159 +
  160 + parent::__construct($fulfilled || ($approveCfgAbsence && false === $cfgValue), $testMessage, $helpHtml, $helpText, $optional);
  161 + }
  162 +}
  163 +
  164 +/**
  165 + * A RequirementCollection represents a set of Requirement instances.
  166 + *
  167 + * @author Tobias Schultze <http://tobion.de>
  168 + */
  169 +class RequirementCollection implements IteratorAggregate
  170 +{
  171 + private $requirements = array();
  172 +
  173 + /**
  174 + * Gets the current RequirementCollection as an Iterator.
  175 + *
  176 + * @return Traversable A Traversable interface
  177 + */
  178 + public function getIterator()
  179 + {
  180 + return new ArrayIterator($this->requirements);
  181 + }
  182 +
  183 + /**
  184 + * Adds a Requirement.
  185 + *
  186 + * @param Requirement $requirement A Requirement instance
  187 + */
  188 + public function add(Requirement $requirement)
  189 + {
  190 + $this->requirements[] = $requirement;
  191 + }
  192 +
  193 + /**
  194 + * Adds a mandatory requirement.
  195 + *
  196 + * @param bool $fulfilled Whether the requirement is fulfilled
  197 + * @param string $testMessage The message for testing the requirement
  198 + * @param string $helpHtml The help text formatted in HTML for resolving the problem
  199 + * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
  200 + */
  201 + public function addRequirement($fulfilled, $testMessage, $helpHtml, $helpText = null)
  202 + {
  203 + $this->add(new Requirement($fulfilled, $testMessage, $helpHtml, $helpText, false));
  204 + }
  205 +
  206 + /**
  207 + * Adds an optional recommendation.
  208 + *
  209 + * @param bool $fulfilled Whether the recommendation is fulfilled
  210 + * @param string $testMessage The message for testing the recommendation
  211 + * @param string $helpHtml The help text formatted in HTML for resolving the problem
  212 + * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
  213 + */
  214 + public function addRecommendation($fulfilled, $testMessage, $helpHtml, $helpText = null)
  215 + {
  216 + $this->add(new Requirement($fulfilled, $testMessage, $helpHtml, $helpText, true));
  217 + }
  218 +
  219 + /**
  220 + * Adds a mandatory requirement in form of a php.ini configuration.
  221 + *
  222 + * @param string $cfgName The configuration name used for ini_get()
  223 + * @param bool|callback $evaluation Either a boolean indicating whether the configuration should evaluate to true or false,
  224 + * or a callback function receiving the configuration value as parameter to determine the fulfillment of the requirement
  225 + * @param bool $approveCfgAbsence If true the Requirement will be fulfilled even if the configuration option does not exist, i.e. ini_get() returns false.
  226 + * This is helpful for abandoned configs in later PHP versions or configs of an optional extension, like Suhosin.
  227 + * Example: You require a config to be true but PHP later removes this config and defaults it to true internally.
  228 + * @param string $testMessage The message for testing the requirement (when null and $evaluation is a boolean a default message is derived)
  229 + * @param string $helpHtml The help text formatted in HTML for resolving the problem (when null and $evaluation is a boolean a default help is derived)
  230 + * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
  231 + */
  232 + public function addPhpIniRequirement($cfgName, $evaluation, $approveCfgAbsence = false, $testMessage = null, $helpHtml = null, $helpText = null)
  233 + {
  234 + $this->add(new PhpIniRequirement($cfgName, $evaluation, $approveCfgAbsence, $testMessage, $helpHtml, $helpText, false));
  235 + }
  236 +
  237 + /**
  238 + * Adds an optional recommendation in form of a php.ini configuration.
  239 + *
  240 + * @param string $cfgName The configuration name used for ini_get()
  241 + * @param bool|callback $evaluation Either a boolean indicating whether the configuration should evaluate to true or false,
  242 + * or a callback function receiving the configuration value as parameter to determine the fulfillment of the requirement
  243 + * @param bool $approveCfgAbsence If true the Requirement will be fulfilled even if the configuration option does not exist, i.e. ini_get() returns false.
  244 + * This is helpful for abandoned configs in later PHP versions or configs of an optional extension, like Suhosin.
  245 + * Example: You require a config to be true but PHP later removes this config and defaults it to true internally.
  246 + * @param string $testMessage The message for testing the requirement (when null and $evaluation is a boolean a default message is derived)
  247 + * @param string $helpHtml The help text formatted in HTML for resolving the problem (when null and $evaluation is a boolean a default help is derived)
  248 + * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
  249 + */
  250 + public function addPhpIniRecommendation($cfgName, $evaluation, $approveCfgAbsence = false, $testMessage = null, $helpHtml = null, $helpText = null)
  251 + {
  252 + $this->add(new PhpIniRequirement($cfgName, $evaluation, $approveCfgAbsence, $testMessage, $helpHtml, $helpText, true));
  253 + }
  254 +
  255 + /**
  256 + * Adds a requirement collection to the current set of requirements.
  257 + *
  258 + * @param RequirementCollection $collection A RequirementCollection instance
  259 + */
  260 + public function addCollection(RequirementCollection $collection)
  261 + {
  262 + $this->requirements = array_merge($this->requirements, $collection->all());
  263 + }
  264 +
  265 + /**
  266 + * Returns both requirements and recommendations.
  267 + *
  268 + * @return array Array of Requirement instances
  269 + */
  270 + public function all()
  271 + {
  272 + return $this->requirements;
  273 + }
  274 +
  275 + /**
  276 + * Returns all mandatory requirements.
  277 + *
  278 + * @return array Array of Requirement instances
  279 + */
  280 + public function getRequirements()
  281 + {
  282 + $array = array();
  283 + foreach ($this->requirements as $req) {
  284 + if (!$req->isOptional()) {
  285 + $array[] = $req;
  286 + }
  287 + }
  288 +
  289 + return $array;
  290 + }
  291 +
  292 + /**
  293 + * Returns the mandatory requirements that were not met.
  294 + *
  295 + * @return array Array of Requirement instances
  296 + */
  297 + public function getFailedRequirements()
  298 + {
  299 + $array = array();
  300 + foreach ($this->requirements as $req) {
  301 + if (!$req->isFulfilled() && !$req->isOptional()) {
  302 + $array[] = $req;
  303 + }
  304 + }
  305 +
  306 + return $array;
  307 + }
  308 +
  309 + /**
  310 + * Returns all optional recommendations.
  311 + *
  312 + * @return array Array of Requirement instances
  313 + */
  314 + public function getRecommendations()
  315 + {
  316 + $array = array();
  317 + foreach ($this->requirements as $req) {
  318 + if ($req->isOptional()) {
  319 + $array[] = $req;
  320 + }
  321 + }
  322 +
  323 + return $array;
  324 + }
  325 +
  326 + /**
  327 + * Returns the recommendations that were not met.
  328 + *
  329 + * @return array Array of Requirement instances
  330 + */
  331 + public function getFailedRecommendations()
  332 + {
  333 + $array = array();
  334 + foreach ($this->requirements as $req) {
  335 + if (!$req->isFulfilled() && $req->isOptional()) {
  336 + $array[] = $req;
  337 + }
  338 + }
  339 +
  340 + return $array;
  341 + }
  342 +
  343 + /**
  344 + * Returns whether a php.ini configuration is not correct.
  345 + *
  346 + * @return bool php.ini configuration problem?
  347 + */
  348 + public function hasPhpIniConfigIssue()
  349 + {
  350 + foreach ($this->requirements as $req) {
  351 + if (!$req->isFulfilled() && $req instanceof PhpIniRequirement) {
  352 + return true;
  353 + }
  354 + }
  355 +
  356 + return false;
  357 + }
  358 +
  359 + /**
  360 + * Returns the PHP configuration file (php.ini) path.
  361 + *
  362 + * @return string|false php.ini file path
  363 + */
  364 + public function getPhpIniConfigPath()
  365 + {
  366 + return get_cfg_var('cfg_file_path');
  367 + }
  368 +}
  369 +
  370 +/**
  371 + * This class specifies all requirements and optional recommendations that
  372 + * are necessary to run the Symfony Standard Edition.
  373 + *
  374 + * @author Tobias Schultze <http://tobion.de>
  375 + * @author Fabien Potencier <fabien@symfony.com>
  376 + */
  377 +class SymfonyRequirements extends RequirementCollection
  378 +{
  379 + const REQUIRED_PHP_VERSION = '5.3.3';
  380 +
  381 + /**
  382 + * Constructor that initializes the requirements.
  383 + */
  384 + public function __construct()
  385 + {
  386 + /* mandatory requirements follow */
  387 +
  388 + $installedPhpVersion = phpversion();
  389 +
  390 + $this->addRequirement(
  391 + version_compare($installedPhpVersion, self::REQUIRED_PHP_VERSION, '>='),
  392 + sprintf('PHP version must be at least %s (%s installed)', self::REQUIRED_PHP_VERSION, $installedPhpVersion),
  393 + sprintf('You are running PHP version "<strong>%s</strong>", but Symfony needs at least PHP "<strong>%s</strong>" to run.
  394 + Before using Symfony, upgrade your PHP installation, preferably to the latest version.',
  395 + $installedPhpVersion, self::REQUIRED_PHP_VERSION),
  396 + sprintf('Install PHP %s or newer (installed version is %s)', self::REQUIRED_PHP_VERSION, $installedPhpVersion)
  397 + );
  398 +
  399 + $this->addRequirement(
  400 + version_compare($installedPhpVersion, '5.3.16', '!='),
  401 + 'PHP version must not be 5.3.16 as Symfony won\'t work properly with it',
  402 + 'Install PHP 5.3.17 or newer (or downgrade to an earlier PHP version)'
  403 + );
  404 +
  405 + $this->addRequirement(
  406 + is_dir(__DIR__.'/../vendor/composer'),
  407 + 'Vendor libraries must be installed',
  408 + 'Vendor libraries are missing. Install composer following instructions from <a href="http://getcomposer.org/">http://getcomposer.org/</a>. '.
  409 + 'Then run "<strong>php composer.phar install</strong>" to install them.'
  410 + );
  411 +
  412 + $cacheDir = is_dir(__DIR__.'/../var/cache') ? __DIR__.'/../var/cache' : __DIR__.'/cache';
  413 +
  414 + $this->addRequirement(
  415 + is_writable($cacheDir),
  416 + 'app/cache/ or var/cache/ directory must be writable',
  417 + 'Change the permissions of either "<strong>app/cache/</strong>" or "<strong>var/cache/</strong>" directory so that the web server can write into it.'
  418 + );
  419 +
  420 + $logsDir = is_dir(__DIR__.'/../var/logs') ? __DIR__.'/../var/logs' : __DIR__.'/logs';
  421 +
  422 + $this->addRequirement(
  423 + is_writable($logsDir),
  424 + 'app/logs/ or var/logs/ directory must be writable',
  425 + 'Change the permissions of either "<strong>app/logs/</strong>" or "<strong>var/logs/</strong>" directory so that the web server can write into it.'
  426 + );
  427 +
  428 + if (version_compare($installedPhpVersion, '7.0.0', '<')) {
  429 + $this->addPhpIniRequirement(
  430 + 'date.timezone', true, false,
  431 + 'date.timezone setting must be set',
  432 + 'Set the "<strong>date.timezone</strong>" setting in php.ini<a href="#phpini">*</a> (like Europe/Paris).'
  433 + );
  434 + }
  435 +
  436 + if (version_compare($installedPhpVersion, self::REQUIRED_PHP_VERSION, '>=')) {
  437 + $timezones = array();
  438 + foreach (DateTimeZone::listAbbreviations() as $abbreviations) {
  439 + foreach ($abbreviations as $abbreviation) {
  440 + $timezones[$abbreviation['timezone_id']] = true;
  441 + }
  442 + }
  443 +
  444 + $this->addRequirement(
  445 + isset($timezones[@date_default_timezone_get()]),
  446 + sprintf('Configured default timezone "%s" must be supported by your installation of PHP', @date_default_timezone_get()),
  447 + 'Your default timezone is not supported by PHP. Check for typos in your <strong>php.ini</strong> file and have a look at the list of deprecated timezones at <a href="http://php.net/manual/en/timezones.others.php">http://php.net/manual/en/timezones.others.php</a>.'
  448 + );
  449 + }
  450 +
  451 + $this->addRequirement(
  452 + function_exists('iconv'),
  453 + 'iconv() must be available',
  454 + 'Install and enable the <strong>iconv</strong> extension.'
  455 + );
  456 +
  457 + $this->addRequirement(
  458 + function_exists('json_encode'),
  459 + 'json_encode() must be available',
  460 + 'Install and enable the <strong>JSON</strong> extension.'
  461 + );
  462 +
  463 + $this->addRequirement(
  464 + function_exists('session_start'),
  465 + 'session_start() must be available',
  466 + 'Install and enable the <strong>session</strong> extension.'
  467 + );
  468 +
  469 + $this->addRequirement(
  470 + function_exists('ctype_alpha'),
  471 + 'ctype_alpha() must be available',
  472 + 'Install and enable the <strong>ctype</strong> extension.'
  473 + );
  474 +
  475 + $this->addRequirement(
  476 + function_exists('token_get_all'),
  477 + 'token_get_all() must be available',
  478 + 'Install and enable the <strong>Tokenizer</strong> extension.'
  479 + );
  480 +
  481 + $this->addRequirement(
  482 + function_exists('simplexml_import_dom'),
  483 + 'simplexml_import_dom() must be available',
  484 + 'Install and enable the <strong>SimpleXML</strong> extension.'
  485 + );
  486 +
  487 + if (function_exists('apc_store') && ini_get('apc.enabled')) {
  488 + if (version_compare($installedPhpVersion, '5.4.0', '>=')) {
  489 + $this->addRequirement(
  490 + version_compare(phpversion('apc'), '3.1.13', '>='),
  491 + 'APC version must be at least 3.1.13 when using PHP 5.4',
  492 + 'Upgrade your <strong>APC</strong> extension (3.1.13+).'
  493 + );
  494 + } else {
  495 + $this->addRequirement(
  496 + version_compare(phpversion('apc'), '3.0.17', '>='),
  497 + 'APC version must be at least 3.0.17',
  498 + 'Upgrade your <strong>APC</strong> extension (3.0.17+).'
  499 + );
  500 + }
  501 + }
  502 +
  503 + $this->addPhpIniRequirement('detect_unicode', false);
  504 +
  505 + if (extension_loaded('suhosin')) {
  506 + $this->addPhpIniRequirement(
  507 + 'suhosin.executor.include.whitelist',
  508 + create_function('$cfgValue', 'return false !== stripos($cfgValue, "phar");'),
  509 + false,
  510 + 'suhosin.executor.include.whitelist must be configured correctly in php.ini',
  511 + 'Add "<strong>phar</strong>" to <strong>suhosin.executor.include.whitelist</strong> in php.ini<a href="#phpini">*</a>.'
  512 + );
  513 + }
  514 +
  515 + if (extension_loaded('xdebug')) {
  516 + $this->addPhpIniRequirement(
  517 + 'xdebug.show_exception_trace', false, true
  518 + );
  519 +
  520 + $this->addPhpIniRequirement(
  521 + 'xdebug.scream', false, true
  522 + );
  523 +
  524 + $this->addPhpIniRecommendation(
  525 + 'xdebug.max_nesting_level',
  526 + create_function('$cfgValue', 'return $cfgValue > 100;'),
  527 + true,
  528 + 'xdebug.max_nesting_level should be above 100 in php.ini',
  529 + 'Set "<strong>xdebug.max_nesting_level</strong>" to e.g. "<strong>250</strong>" in php.ini<a href="#phpini">*</a> to stop Xdebug\'s infinite recursion protection erroneously throwing a fatal error in your project.'
  530 + );
  531 + }
  532 +
  533 + $pcreVersion = defined('PCRE_VERSION') ? (float) PCRE_VERSION : null;
  534 +
  535 + $this->addRequirement(
  536 + null !== $pcreVersion,
  537 + 'PCRE extension must be available',
  538 + 'Install the <strong>PCRE</strong> extension (version 8.0+).'
  539 + );
  540 +
  541 + if (extension_loaded('mbstring')) {
  542 + $this->addPhpIniRequirement(
  543 + 'mbstring.func_overload',
  544 + create_function('$cfgValue', 'return (int) $cfgValue === 0;'),
  545 + true,
  546 + 'string functions should not be overloaded',
  547 + 'Set "<strong>mbstring.func_overload</strong>" to <strong>0</strong> in php.ini<a href="#phpini">*</a> to disable function overloading by the mbstring extension.'
  548 + );
  549 + }
  550 +
  551 + /* optional recommendations follow */
  552 +
  553 + if (file_exists(__DIR__.'/../vendor/composer')) {
  554 + require_once __DIR__.'/../vendor/autoload.php';
  555 +
  556 + try {
  557 + $r = new ReflectionClass('Sensio\Bundle\DistributionBundle\SensioDistributionBundle');
  558 +
  559 + $contents = file_get_contents(dirname($r->getFileName()).'/Resources/skeleton/app/SymfonyRequirements.php');
  560 + } catch (ReflectionException $e) {
  561 + $contents = '';
  562 + }
  563 + $this->addRecommendation(
  564 + file_get_contents(__FILE__) === $contents,
  565 + 'Requirements file should be up-to-date',
  566 + 'Your requirements file is outdated. Run composer install and re-check your configuration.'
  567 + );
  568 + }
  569 +
  570 + $this->addRecommendation(
  571 + version_compare($installedPhpVersion, '5.3.4', '>='),
  572 + 'You should use at least PHP 5.3.4 due to PHP bug #52083 in earlier versions',
  573 + 'Your project might malfunction randomly due to PHP bug #52083 ("Notice: Trying to get property of non-object"). Install PHP 5.3.4 or newer.'
  574 + );
  575 +
  576 + $this->addRecommendation(
  577 + version_compare($installedPhpVersion, '5.3.8', '>='),
  578 + 'When using annotations you should have at least PHP 5.3.8 due to PHP bug #55156',
  579 + 'Install PHP 5.3.8 or newer if your project uses annotations.'
  580 + );
  581 +
  582 + $this->addRecommendation(
  583 + version_compare($installedPhpVersion, '5.4.0', '!='),
  584 + 'You should not use PHP 5.4.0 due to the PHP bug #61453',
  585 + 'Your project might not work properly due to the PHP bug #61453 ("Cannot dump definitions which have method calls"). Install PHP 5.4.1 or newer.'
  586 + );
  587 +
  588 + $this->addRecommendation(
  589 + version_compare($installedPhpVersion, '5.4.11', '>='),
  590 + 'When using the logout handler from the Symfony Security Component, you should have at least PHP 5.4.11 due to PHP bug #63379 (as a workaround, you can also set invalidate_session to false in the security logout handler configuration)',
  591 + 'Install PHP 5.4.11 or newer if your project uses the logout handler from the Symfony Security Component.'
  592 + );
  593 +
  594 + $this->addRecommendation(
  595 + (version_compare($installedPhpVersion, '5.3.18', '>=') && version_compare($installedPhpVersion, '5.4.0', '<'))
  596 + ||
  597 + version_compare($installedPhpVersion, '5.4.8', '>='),
  598 + 'You should use PHP 5.3.18+ or PHP 5.4.8+ to always get nice error messages for fatal errors in the development environment due to PHP bug #61767/#60909',
  599 + 'Install PHP 5.3.18+ or PHP 5.4.8+ if you want nice error messages for all fatal errors in the development environment.'
  600 + );
  601 +
  602 + if (null !== $pcreVersion) {
  603 + $this->addRecommendation(
  604 + $pcreVersion >= 8.0,
  605 + sprintf('PCRE extension should be at least version 8.0 (%s installed)', $pcreVersion),
  606 + '<strong>PCRE 8.0+</strong> is preconfigured in PHP since 5.3.2 but you are using an outdated version of it. Symfony probably works anyway but it is recommended to upgrade your PCRE extension.'
  607 + );
  608 + }
  609 +
  610 + $this->addRecommendation(
  611 + class_exists('DomDocument'),
  612 + 'PHP-DOM and PHP-XML modules should be installed',
  613 + 'Install and enable the <strong>PHP-DOM</strong> and the <strong>PHP-XML</strong> modules.'
  614 + );
  615 +
  616 + $this->addRecommendation(
  617 + function_exists('mb_strlen'),
  618 + 'mb_strlen() should be available',
  619 + 'Install and enable the <strong>mbstring</strong> extension.'
  620 + );
  621 +
  622 + $this->addRecommendation(
  623 + function_exists('iconv'),
  624 + 'iconv() should be available',
  625 + 'Install and enable the <strong>iconv</strong> extension.'
  626 + );
  627 +
  628 + $this->addRecommendation(
  629 + function_exists('utf8_decode'),
  630 + 'utf8_decode() should be available',
  631 + 'Install and enable the <strong>XML</strong> extension.'
  632 + );
  633 +
  634 + $this->addRecommendation(
  635 + function_exists('filter_var'),
  636 + 'filter_var() should be available',
  637 + 'Install and enable the <strong>filter</strong> extension.'
  638 + );
  639 +
  640 + if (!defined('PHP_WINDOWS_VERSION_BUILD')) {
  641 + $this->addRecommendation(
  642 + function_exists('posix_isatty'),
  643 + 'posix_isatty() should be available',
  644 + 'Install and enable the <strong>php_posix</strong> extension (used to colorize the CLI output).'
  645 + );
  646 + }
  647 +
  648 + $this->addRecommendation(
  649 + extension_loaded('intl'),
  650 + 'intl extension should be available',
  651 + 'Install and enable the <strong>intl</strong> extension (used for validators).'
  652 + );
  653 +
  654 + if (extension_loaded('intl')) {
  655 + // in some WAMP server installations, new Collator() returns null
  656 + $this->addRecommendation(
  657 + null !== new Collator('fr_FR'),
  658 + 'intl extension should be correctly configured',
  659 + 'The intl extension does not behave properly. This problem is typical on PHP 5.3.X x64 WIN builds.'
  660 + );
  661 +
  662 + // check for compatible ICU versions (only done when you have the intl extension)
  663 + if (defined('INTL_ICU_VERSION')) {
  664 + $version = INTL_ICU_VERSION;
  665 + } else {
  666 + $reflector = new ReflectionExtension('intl');
  667 +
  668 + ob_start();
  669 + $reflector->info();
  670 + $output = strip_tags(ob_get_clean());
  671 +
  672 + preg_match('/^ICU version +(?:=> )?(.*)$/m', $output, $matches);
  673 + $version = $matches[1];
  674 + }
  675 +
  676 + $this->addRecommendation(
  677 + version_compare($version, '4.0', '>='),
  678 + 'intl ICU version should be at least 4+',
  679 + 'Upgrade your <strong>intl</strong> extension with a newer ICU version (4+).'
  680 + );
  681 +
  682 + if (class_exists('Symfony\Component\Intl\Intl')) {
  683 + $this->addRecommendation(
  684 + \Symfony\Component\Intl\Intl::getIcuDataVersion() === \Symfony\Component\Intl\Intl::getIcuVersion(),
  685 + sprintf('intl ICU version installed on your system (%s) should match the ICU data bundled with Symfony (%s)', \Symfony\Component\Intl\Intl::getIcuVersion(), \Symfony\Component\Intl\Intl::getIcuDataVersion()),
  686 + 'In most cases you should be fine, but please verify there is no inconsistencies between data provided by Symfony and the intl extension. See https://github.com/symfony/symfony/issues/15007 for an example of inconsistencies you might run into.'
  687 + );
  688 + }
  689 +
  690 + $this->addPhpIniRecommendation(
  691 + 'intl.error_level',
  692 + create_function('$cfgValue', 'return (int) $cfgValue === 0;'),
  693 + true,
  694 + 'intl.error_level should be 0 in php.ini',
  695 + 'Set "<strong>intl.error_level</strong>" to "<strong>0</strong>" in php.ini<a href="#phpini">*</a> to inhibit the messages when an error occurs in ICU functions.'
  696 + );
  697 + }
  698 +
  699 + $accelerator =
  700 + (extension_loaded('eaccelerator') && ini_get('eaccelerator.enable'))
  701 + ||
  702 + (extension_loaded('apc') && ini_get('apc.enabled'))
  703 + ||
  704 + (extension_loaded('Zend Optimizer+') && ini_get('zend_optimizerplus.enable'))
  705 + ||
  706 + (extension_loaded('Zend OPcache') && ini_get('opcache.enable'))
  707 + ||
  708 + (extension_loaded('xcache') && ini_get('xcache.cacher'))
  709 + ||
  710 + (extension_loaded('wincache') && ini_get('wincache.ocenabled'))
  711 + ;
  712 +
  713 + $this->addRecommendation(
  714 + $accelerator,
  715 + 'a PHP accelerator should be installed',
  716 + 'Install and/or enable a <strong>PHP accelerator</strong> (highly recommended).'
  717 + );
  718 +
  719 + if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
  720 + $this->addRecommendation(
  721 + $this->getRealpathCacheSize() > 1000,
  722 + 'realpath_cache_size should be above 1024 in php.ini',
  723 + 'Set "<strong>realpath_cache_size</strong>" to e.g. "<strong>1024</strong>" in php.ini<a href="#phpini">*</a> to improve performance on windows.'
  724 + );
  725 + }
  726 +
  727 + $this->addPhpIniRecommendation('short_open_tag', false);
  728 +
  729 + $this->addPhpIniRecommendation('magic_quotes_gpc', false, true);
  730 +
  731 + $this->addPhpIniRecommendation('register_globals', false, true);
  732 +
  733 + $this->addPhpIniRecommendation('session.auto_start', false);
  734 +
  735 + $this->addRecommendation(
  736 + class_exists('PDO'),
  737 + 'PDO should be installed',
  738 + 'Install <strong>PDO</strong> (mandatory for Doctrine).'
  739 + );
  740 +
  741 + if (class_exists('PDO')) {
  742 + $drivers = PDO::getAvailableDrivers();
  743 + $this->addRecommendation(
  744 + count($drivers) > 0,
  745 + sprintf('PDO should have some drivers installed (currently available: %s)', count($drivers) ? implode(', ', $drivers) : 'none'),
  746 + 'Install <strong>PDO drivers</strong> (mandatory for Doctrine).'
  747 + );
  748 + }
  749 + }
  750 +
  751 + /**
  752 + * Loads realpath_cache_size from php.ini and converts it to int.
  753 + *
  754 + * (e.g. 16k is converted to 16384 int)
  755 + *
  756 + * @return int
  757 + */
  758 + protected function getRealpathCacheSize()
  759 + {
  760 + $size = ini_get('realpath_cache_size');
  761 + $size = trim($size);
  762 + $unit = strtolower(substr($size, -1, 1));
  763 + switch ($unit) {
  764 + case 'g':
  765 + return $size * 1024 * 1024 * 1024;
  766 + case 'm':
  767 + return $size * 1024 * 1024;
  768 + case 'k':
  769 + return $size * 1024;
  770 + default:
  771 + return (int) $size;
  772 + }
  773 + }
  774 +}
... ...
app/autoload.php
... ... @@ -0,0 +1,13 @@
  1 +<?php
  2 +
  3 +use Doctrine\Common\Annotations\AnnotationRegistry;
  4 +use Composer\Autoload\ClassLoader;
  5 +
  6 +/**
  7 + * @var ClassLoader $loader
  8 + */
  9 +$loader = require __DIR__.'/../vendor/autoload.php';
  10 +
  11 +AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
  12 +
  13 +return $loader;
... ...
app/cache/.gitkeep
app/check.php
... ... @@ -0,0 +1,142 @@
  1 +<?php
  2 +
  3 +require_once dirname(__FILE__).'/SymfonyRequirements.php';
  4 +
  5 +$lineSize = 70;
  6 +$symfonyRequirements = new SymfonyRequirements();
  7 +$iniPath = $symfonyRequirements->getPhpIniConfigPath();
  8 +
  9 +echo_title('Symfony Requirements Checker');
  10 +
  11 +echo '> PHP is using the following php.ini file:'.PHP_EOL;
  12 +if ($iniPath) {
  13 + echo_style('green', ' '.$iniPath);
  14 +} else {
  15 + echo_style('warning', ' WARNING: No configuration file (php.ini) used by PHP!');
  16 +}
  17 +
  18 +echo PHP_EOL.PHP_EOL;
  19 +
  20 +echo '> Checking Symfony requirements:'.PHP_EOL.' ';
  21 +
  22 +$messages = array();
  23 +foreach ($symfonyRequirements->getRequirements() as $req) {
  24 + /** @var $req Requirement */
  25 + if ($helpText = get_error_message($req, $lineSize)) {
  26 + echo_style('red', 'E');
  27 + $messages['error'][] = $helpText;
  28 + } else {
  29 + echo_style('green', '.');
  30 + }
  31 +}
  32 +
  33 +$checkPassed = empty($messages['error']);
  34 +
  35 +foreach ($symfonyRequirements->getRecommendations() as $req) {
  36 + if ($helpText = get_error_message($req, $lineSize)) {
  37 + echo_style('yellow', 'W');
  38 + $messages['warning'][] = $helpText;
  39 + } else {
  40 + echo_style('green', '.');
  41 + }
  42 +}
  43 +
  44 +if ($checkPassed) {
  45 + echo_block('success', 'OK', 'Your system is ready to run Symfony projects');
  46 +} else {
  47 + echo_block('error', 'ERROR', 'Your system is not ready to run Symfony projects');
  48 +
  49 + echo_title('Fix the following mandatory requirements', 'red');
  50 +
  51 + foreach ($messages['error'] as $helpText) {
  52 + echo ' * '.$helpText.PHP_EOL;
  53 + }
  54 +}
  55 +
  56 +if (!empty($messages['warning'])) {
  57 + echo_title('Optional recommendations to improve your setup', 'yellow');
  58 +
  59 + foreach ($messages['warning'] as $helpText) {
  60 + echo ' * '.$helpText.PHP_EOL;
  61 + }
  62 +}
  63 +
  64 +echo PHP_EOL;
  65 +echo_style('title', 'Note');
  66 +echo ' The command console could use a different php.ini file'.PHP_EOL;
  67 +echo_style('title', '~~~~');
  68 +echo ' than the one used with your web server. To be on the'.PHP_EOL;
  69 +echo ' safe side, please check the requirements from your web'.PHP_EOL;
  70 +echo ' server using the ';
  71 +echo_style('yellow', 'web/config.php');
  72 +echo ' script.'.PHP_EOL;
  73 +echo PHP_EOL;
  74 +
  75 +exit($checkPassed ? 0 : 1);
  76 +
  77 +function get_error_message(Requirement $requirement, $lineSize)
  78 +{
  79 + if ($requirement->isFulfilled()) {
  80 + return;
  81 + }
  82 +
  83 + $errorMessage = wordwrap($requirement->getTestMessage(), $lineSize - 3, PHP_EOL.' ').PHP_EOL;
  84 + $errorMessage .= ' > '.wordwrap($requirement->getHelpText(), $lineSize - 5, PHP_EOL.' > ').PHP_EOL;
  85 +
  86 + return $errorMessage;
  87 +}
  88 +
  89 +function echo_title($title, $style = null)
  90 +{
  91 + $style = $style ?: 'title';
  92 +
  93 + echo PHP_EOL;
  94 + echo_style($style, $title.PHP_EOL);
  95 + echo_style($style, str_repeat('~', strlen($title)).PHP_EOL);
  96 + echo PHP_EOL;
  97 +}
  98 +
  99 +function echo_style($style, $message)
  100 +{
  101 + // ANSI color codes
  102 + $styles = array(
  103 + 'reset' => "\033[0m",
  104 + 'red' => "\033[31m",
  105 + 'green' => "\033[32m",
  106 + 'yellow' => "\033[33m",
  107 + 'error' => "\033[37;41m",
  108 + 'success' => "\033[37;42m",
  109 + 'title' => "\033[34m",
  110 + );
  111 + $supports = has_color_support();
  112 +
  113 + echo($supports ? $styles[$style] : '').$message.($supports ? $styles['reset'] : '');
  114 +}
  115 +
  116 +function echo_block($style, $title, $message)
  117 +{
  118 + $message = ' '.trim($message).' ';
  119 + $width = strlen($message);
  120 +
  121 + echo PHP_EOL.PHP_EOL;
  122 +
  123 + echo_style($style, str_repeat(' ', $width).PHP_EOL);
  124 + echo_style($style, str_pad(' ['.$title.']', $width, ' ', STR_PAD_RIGHT).PHP_EOL);
  125 + echo_style($style, str_pad($message, $width, ' ', STR_PAD_RIGHT).PHP_EOL);
  126 + echo_style($style, str_repeat(' ', $width).PHP_EOL);
  127 +}
  128 +
  129 +function has_color_support()
  130 +{
  131 + static $support;
  132 +
  133 + if (null === $support) {
  134 + if (DIRECTORY_SEPARATOR == '\\') {
  135 + $support = false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI');
  136 + } else {
  137 + $support = function_exists('posix_isatty') && @posix_isatty(STDOUT);
  138 + }
  139 + }
  140 +
  141 + return $support;
  142 +}
... ...
app/config/config.yml
... ... @@ -0,0 +1,67 @@
  1 +imports:
  2 + - { resource: parameters.yml }
  3 + - { resource: security.yml }
  4 + - { resource: services.yml }
  5 +
  6 +# Put parameters here that don't need to change on each machine where the app is deployed
  7 +# http://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
  8 +parameters:
  9 + locale: es
  10 +
  11 +framework:
  12 + #esi: ~
  13 + translator: { fallbacks: [es ] }
  14 + secret: "%secret%"
  15 + router:
  16 + resource: "%kernel.root_dir%/config/routing.yml"
  17 + strict_requirements: ~
  18 + form: ~
  19 + csrf_protection: ~
  20 + validation: { enable_annotations: true }
  21 + #serializer: { enable_annotations: true }
  22 + templating:
  23 + engines: ['twig']
  24 + default_locale: "%locale%"
  25 + trusted_hosts: ~
  26 + trusted_proxies: ~
  27 + session:
  28 + # handler_id set to null will use default session handler from php.ini
  29 + handler_id: session.handler.native_file
  30 + save_path: '%kernel.root_dir%/sessions'
  31 + fragments: ~
  32 + http_method_override: true
  33 +
  34 +# Twig Configuration
  35 +twig:
  36 + debug: "%kernel.debug%"
  37 + strict_variables: "%kernel.debug%"
  38 +
  39 +# Doctrine Configuration
  40 +doctrine:
  41 + dbal:
  42 + driver: pdo_pgsql
  43 + host: "%database_host%"
  44 + port: "%database_port%"
  45 + dbname: "%database_name%"
  46 + user: "%database_user%"
  47 + password: "%database_password%"
  48 + charset: UTF8
  49 + # if using pdo_sqlite as your database driver:
  50 + # 1. add the path in parameters.yml
  51 + # e.g. database_path: "%kernel.root_dir%/data/data.db3"
  52 + # 2. Uncomment database_path in parameters.yml.dist
  53 + # 3. Uncomment next line:
  54 + # path: "%database_path%"
  55 +
  56 + orm:
  57 + auto_generate_proxy_classes: "%kernel.debug%"
  58 + naming_strategy: doctrine.orm.naming_strategy.underscore
  59 + auto_mapping: true
  60 +
  61 +# Swiftmailer Configuration
  62 +swiftmailer:
  63 + transport: "%mailer_transport%"
  64 + host: "%mailer_host%"
  65 + username: "%mailer_user%"
  66 + password: "%mailer_password%"
  67 + spool: { type: memory }
... ...
app/config/config_dev.yml
... ... @@ -0,0 +1,34 @@
  1 +imports:
  2 + - { resource: config.yml }
  3 +
  4 +framework:
  5 + router:
  6 + resource: "%kernel.root_dir%/config/routing_dev.yml"
  7 + strict_requirements: true
  8 + profiler: { only_exceptions: false }
  9 +
  10 +web_profiler:
  11 + toolbar: true
  12 + intercept_redirects: false
  13 +
  14 +monolog:
  15 + handlers:
  16 + main:
  17 + type: stream
  18 + path: "%kernel.logs_dir%/%kernel.environment%.log"
  19 + level: debug
  20 + channels: [!event]
  21 + console:
  22 + type: console
  23 + channels: [!event, !doctrine]
  24 + # uncomment to get logging in your browser
  25 + # you may have to allow bigger header sizes in your Web server configuration
  26 + #firephp:
  27 + # type: firephp
  28 + # level: info
  29 + #chromephp:
  30 + # type: chromephp
  31 + # level: info
  32 +
  33 +#swiftmailer:
  34 +# delivery_address: me@example.com
... ...
app/config/config_prod.yml
... ... @@ -0,0 +1,27 @@
  1 +imports:
  2 + - { resource: config.yml }
  3 +
  4 +#framework:
  5 +# validation:
  6 +# cache: validator.mapping.cache.doctrine.apc
  7 +# serializer:
  8 +# cache: serializer.mapping.cache.apc
  9 +
  10 +#doctrine:
  11 +# orm:
  12 +# metadata_cache_driver: apc
  13 +# result_cache_driver: apc
  14 +# query_cache_driver: apc
  15 +
  16 +monolog:
  17 + handlers:
  18 + main:
  19 + type: fingers_crossed
  20 + action_level: error
  21 + handler: nested
  22 + nested:
  23 + type: stream
  24 + path: "%kernel.logs_dir%/%kernel.environment%.log"
  25 + level: debug
  26 + console:
  27 + type: console
... ...
app/config/config_test.yml
... ... @@ -0,0 +1,16 @@
  1 +imports:
  2 + - { resource: config_dev.yml }
  3 +
  4 +framework:
  5 + test: ~
  6 + session:
  7 + storage_id: session.storage.mock_file
  8 + profiler:
  9 + collect: false
  10 +
  11 +web_profiler:
  12 + toolbar: false
  13 + intercept_redirects: false
  14 +
  15 +swiftmailer:
  16 + disable_delivery: true
... ...
app/config/parameters.yml.dist
... ... @@ -0,0 +1,19 @@
  1 +# This file is a "template" of what your parameters.yml file should look like
  2 +# Set parameters here that may be different on each deployment target of the app, e.g. development, staging, production.
  3 +# http://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration
  4 +parameters:
  5 + database_host: 127.0.0.1
  6 + database_port: ~
  7 + database_name: symfony
  8 + database_user: root
  9 + database_password: ~
  10 + # You should uncomment this if you want use pdo_sqlite
  11 + # database_path: "%kernel.root_dir%/data.db3"
  12 +
  13 + mailer_transport: smtp
  14 + mailer_host: 127.0.0.1
  15 + mailer_user: ~
  16 + mailer_password: ~
  17 +
  18 + # A secret key that's used to generate certain security-related tokens
  19 + secret: ThisTokenIsNotSoSecretChangeIt
... ...
app/config/routing.yml
... ... @@ -0,0 +1,6 @@
  1 +app:
  2 + resource: "@AppBundle/Controller/"
  3 + type: annotation
  4 +
  5 +logout:
  6 + path: /logout
... ...
app/config/routing_dev.yml
... ... @@ -0,0 +1,14 @@
  1 +_wdt:
  2 + resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
  3 + prefix: /_wdt
  4 +
  5 +_profiler:
  6 + resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
  7 + prefix: /_profiler
  8 +
  9 +_errors:
  10 + resource: "@TwigBundle/Resources/config/routing/errors.xml"
  11 + prefix: /_error
  12 +
  13 +_main:
  14 + resource: routing.yml
... ...
app/config/security.yml
... ... @@ -0,0 +1,39 @@
  1 +# To get started with security, check out the documentation:
  2 +# http://symfony.com/doc/current/book/security.html
  3 +security:
  4 + encoders:
  5 + AppBundle\Entity\Usuarios:
  6 + algorithm: bcrypt
  7 +
  8 + # http://symfony.com/doc/current/book/security.html#where-do-users-come-from-user-providers
  9 + providers:
  10 + our_db_provider:
  11 + entity:
  12 + class: AppBundle:Usuarios
  13 + property: username
  14 +
  15 + firewalls:
  16 + main:
  17 + anonymous: ~
  18 + http_basic: ~
  19 + provider: our_db_provider
  20 + form_login:
  21 + login_path: /login
  22 + check_path: /login
  23 + csrf_token_generator: security.csrf.token_manager
  24 + logout:
  25 + path: /logout
  26 + target: /
  27 +
  28 +
  29 + # activate different ways to authenticate
  30 +
  31 + # http_basic: ~
  32 + # http://symfony.com/doc/current/book/security.html#a-configuring-how-your-users-will-authenticate
  33 +
  34 + # form_login: ~
  35 + # http://symfony.com/doc/current/cookbook/security/form_login_setup.html
  36 + access_control:
  37 + - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
  38 + - { path: ^/admin, roles: ROLE_ADMINISTRADOR }
  39 + - { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY }
0 40 \ No newline at end of file
... ...
app/config/services.yml
... ... @@ -0,0 +1,9 @@
  1 +# Learn more about services, parameters and containers at
  2 +# http://symfony.com/doc/current/book/service_container.html
  3 +parameters:
  4 +# parameter_name: value
  5 +
  6 +services:
  7 +# service_name:
  8 +# class: AppBundle\Directory\ClassName
  9 +# arguments: ["@another_service_name", "plain_value", "%parameter_name%"]
... ...
app/console
... ... @@ -0,0 +1,29 @@
  1 +#!/usr/bin/env php
  2 +<?php
  3 +
  4 +use Symfony\Bundle\FrameworkBundle\Console\Application;
  5 +use Symfony\Component\Console\Input\ArgvInput;
  6 +use Symfony\Component\Debug\Debug;
  7 +
  8 +// if you don't want to setup permissions the proper way, just uncomment the following PHP line
  9 +// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
  10 +//umask(0000);
  11 +
  12 +set_time_limit(0);
  13 +
  14 +/**
  15 + * @var Composer\Autoload\ClassLoader $loader
  16 + */
  17 +$loader = require __DIR__.'/autoload.php';
  18 +
  19 +$input = new ArgvInput();
  20 +$env = $input->getParameterOption(array('--env', '-e'), getenv('SYMFONY_ENV') ?: 'dev');
  21 +$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(array('--no-debug', '')) && $env !== 'prod';
  22 +
  23 +if ($debug) {
  24 + Debug::enable();
  25 +}
  26 +
  27 +$kernel = new AppKernel($env, $debug);
  28 +$application = new Application($kernel);
  29 +$application->run($input);
... ...
app/logs/.gitkeep
app/phpunit.xml.dist
... ... @@ -0,0 +1,38 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +
  3 +<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html -->
  4 +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5 + xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.8/phpunit.xsd"
  6 + backupGlobals="false"
  7 + colors="true"
  8 + bootstrap="autoload.php"
  9 +>
  10 + <php>
  11 + <ini name="error_reporting" value="-1" />
  12 + <!--
  13 + <server name="KERNEL_DIR" value="/path/to/your/app/" />
  14 + -->
  15 + </php>
  16 +
  17 + <testsuites>
  18 + <testsuite name="Project Test Suite">
  19 + <directory>../src/*/*Bundle/Tests</directory>
  20 + <directory>../src/*/Bundle/*Bundle/Tests</directory>
  21 + <directory>../src/*Bundle/Tests</directory>
  22 + </testsuite>
  23 + </testsuites>
  24 +
  25 + <filter>
  26 + <whitelist>
  27 + <directory>../src</directory>
  28 + <exclude>
  29 + <directory>../src/*Bundle/Resources</directory>
  30 + <directory>../src/*Bundle/Tests</directory>
  31 + <directory>../src/*/*Bundle/Resources</directory>
  32 + <directory>../src/*/*Bundle/Tests</directory>
  33 + <directory>../src/*/Bundle/*Bundle/Resources</directory>
  34 + <directory>../src/*/Bundle/*Bundle/Tests</directory>
  35 + </exclude>
  36 + </whitelist>
  37 + </filter>
  38 +</phpunit>
... ...
app/sessions/sess_1l27v49anm4mmd8cphnsrgqjt1
... ... @@ -0,0 +1 @@
  1 +_sf2_attributes|a:0:{}_sf2_flashes|a:0:{}_sf2_meta|a:3:{s:1:"u";i:1467220787;s:1:"c";i:1467220787;s:1:"l";s:1:"0";}
0 2 \ No newline at end of file
... ...
app/sessions/sess_9cehpg2hopit8p22p814m15284
... ... @@ -0,0 +1 @@
  1 +_sf2_attributes|a:4:{s:18:"_csrf/authenticate";s:43:"BX3IbDLRh1xcI2JSUOgqrngxxOiCm8hSVKpO4efJzv8";s:14:"_security_main";s:481:"C:74:"Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken":393:{a:3:{i:0;N;i:1;s:4:"main";i:2;s:353:"a:4:{i:0;C:25:"AppBundle\Entity\Usuarios":105:{a:3:{i:0;i:6;i:1;s:8:"wramones";i:2;s:60:"$2y$13$LS5p68shy2/CmAnD24D.kuozoNcxZEjZwefVqnCKw8tlOphUNi5iq";}}i:1;b:1;i:2;a:2:{i:0;C:21:"AppBundle\Entity\Role":44:{a:2:{i:0;i:1;i:1;s:18:"ROLE_ADMINISTRADOR";}}i:1;C:21:"AppBundle\Entity\Role":51:{a:2:{i:0;i:2;i:1;s:25:"ROLE_COORDINADOR_NACIONAL";}}}i:3;a:0:{}}";}}";s:14:"_csrf/usuarios";s:43:"jS2ZXhFJWf5hdlawxFOBv-mcYQyEcxx_u6oR8s5c2ac";s:10:"_csrf/form";s:43:"MnA8aPElnd7fZEhOFGctgO1YAGK9PQCARb3zUQHW9Jo";}_sf2_flashes|a:0:{}_sf2_meta|a:3:{s:1:"u";i:1467229420;s:1:"c";i:1467228941;s:1:"l";s:1:"0";}
0 2 \ No newline at end of file
... ...
bower.json
... ... @@ -0,0 +1,22 @@
  1 +{
  2 + "name": "sym_cea",
  3 + "authors": [
  4 + "Wilmer Ramones <wramones@ubv.edu.ve>"
  5 + ],
  6 + "description": "Centro de Estudios Avanzados",
  7 + "main": "",
  8 + "license": "MIT",
  9 + "homepage": "localhost/cea",
  10 + "private": true,
  11 + "ignore": [
  12 + "**/.*",
  13 + "node_modules",
  14 + "bower_components",
  15 + "web/assets/vendor/",
  16 + "test",
  17 + "tests"
  18 + ],
  19 + "dependencies": {
  20 + "bootstrap": "^3.3.6"
  21 + }
  22 +}
... ...
composer.json
... ... @@ -0,0 +1,58 @@
  1 +{
  2 + "name": "ubv.cipee/sym_cea",
  3 + "license": "proprietary",
  4 + "type": "project",
  5 + "autoload": {
  6 + "psr-4": {
  7 + "": "src/"
  8 + },
  9 + "classmap": [
  10 + "app/AppKernel.php",
  11 + "app/AppCache.php"
  12 + ]
  13 + },
  14 + "require": {
  15 + "php": ">=5.3.9",
  16 + "symfony/symfony": "2.8.*",
  17 + "doctrine/orm": "^2.4.8",
  18 + "doctrine/doctrine-bundle": "~1.4",
  19 + "symfony/swiftmailer-bundle": "~2.3",
  20 + "symfony/monolog-bundle": "~2.4",
  21 + "sensio/distribution-bundle": "~5.0",
  22 + "sensio/framework-extra-bundle": "^3.0.2",
  23 + "incenteev/composer-parameter-handler": "~2.0"
  24 + },
  25 + "require-dev": {
  26 + "sensio/generator-bundle": "~3.0",
  27 + "symfony/phpunit-bridge": "~2.7"
  28 + },
  29 + "scripts": {
  30 + "post-install-cmd": [
  31 + "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
  32 + "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
  33 + "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
  34 + "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
  35 + "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
  36 + "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
  37 + ],
  38 + "post-update-cmd": [
  39 + "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
  40 + "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
  41 + "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
  42 + "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
  43 + "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
  44 + "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
  45 + ]
  46 + },
  47 + "config": {
  48 + "bin-dir": "bin"
  49 + },
  50 + "extra": {
  51 + "symfony-app-dir": "app",
  52 + "symfony-web-dir": "web",
  53 + "symfony-assets-install": "relative",
  54 + "incenteev-parameters": {
  55 + "file": "app/config/parameters.yml"
  56 + }
  57 + }
  58 +}
... ...
composer.lock
... ... @@ -0,0 +1,2190 @@
  1 +{
  2 + "_readme": [
  3 + "This file locks the dependencies of your project to a known state",
  4 + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
  5 + "This file is @generated automatically"
  6 + ],
  7 + "hash": "0a0782e904b50a24c344e588db2d3c38",
  8 + "content-hash": "b0ed8c0c2b550ffa0283f400cd8c622f",
  9 + "packages": [
  10 + {
  11 + "name": "doctrine/annotations",
  12 + "version": "v1.2.7",
  13 + "source": {
  14 + "type": "git",
  15 + "url": "https://github.com/doctrine/annotations.git",
  16 + "reference": "f25c8aab83e0c3e976fd7d19875f198ccf2f7535"
  17 + },
  18 + "dist": {
  19 + "type": "zip",
  20 + "url": "https://api.github.com/repos/doctrine/annotations/zipball/f25c8aab83e0c3e976fd7d19875f198ccf2f7535",
  21 + "reference": "f25c8aab83e0c3e976fd7d19875f198ccf2f7535",
  22 + "shasum": ""
  23 + },
  24 + "require": {
  25 + "doctrine/lexer": "1.*",
  26 + "php": ">=5.3.2"
  27 + },
  28 + "require-dev": {
  29 + "doctrine/cache": "1.*",
  30 + "phpunit/phpunit": "4.*"
  31 + },
  32 + "type": "library",
  33 + "extra": {
  34 + "branch-alias": {
  35 + "dev-master": "1.3.x-dev"
  36 + }
  37 + },
  38 + "autoload": {
  39 + "psr-0": {
  40 + "Doctrine\\Common\\Annotations\\": "lib/"
  41 + }
  42 + },
  43 + "notification-url": "https://packagist.org/downloads/",
  44 + "license": [
  45 + "MIT"
  46 + ],
  47 + "authors": [
  48 + {
  49 + "name": "Roman Borschel",
  50 + "email": "roman@code-factory.org"
  51 + },
  52 + {
  53 + "name": "Benjamin Eberlei",
  54 + "email": "kontakt@beberlei.de"
  55 + },
  56 + {
  57 + "name": "Guilherme Blanco",
  58 + "email": "guilhermeblanco@gmail.com"
  59 + },
  60 + {
  61 + "name": "Jonathan Wage",
  62 + "email": "jonwage@gmail.com"
  63 + },
  64 + {
  65 + "name": "Johannes Schmitt",
  66 + "email": "schmittjoh@gmail.com"
  67 + }
  68 + ],
  69 + "description": "Docblock Annotations Parser",
  70 + "homepage": "http://www.doctrine-project.org",
  71 + "keywords": [
  72 + "annotations",
  73 + "docblock",
  74 + "parser"
  75 + ],
  76 + "time": "2015-08-31 12:32:49"
  77 + },
  78 + {
  79 + "name": "doctrine/cache",
  80 + "version": "v1.5.4",
  81 + "source": {
  82 + "type": "git",
  83 + "url": "https://github.com/doctrine/cache.git",
  84 + "reference": "47cdc76ceb95cc591d9c79a36dc3794975b5d136"
  85 + },
  86 + "dist": {
  87 + "type": "zip",
  88 + "url": "https://api.github.com/repos/doctrine/cache/zipball/47cdc76ceb95cc591d9c79a36dc3794975b5d136",
  89 + "reference": "47cdc76ceb95cc591d9c79a36dc3794975b5d136",
  90 + "shasum": ""
  91 + },
  92 + "require": {
  93 + "php": ">=5.3.2"
  94 + },
  95 + "conflict": {
  96 + "doctrine/common": ">2.2,<2.4"
  97 + },
  98 + "require-dev": {
  99 + "phpunit/phpunit": ">=3.7",
  100 + "predis/predis": "~1.0",
  101 + "satooshi/php-coveralls": "~0.6"
  102 + },
  103 + "type": "library",
  104 + "extra": {
  105 + "branch-alias": {
  106 + "dev-master": "1.5.x-dev"
  107 + }
  108 + },
  109 + "autoload": {
  110 + "psr-4": {
  111 + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
  112 + }
  113 + },
  114 + "notification-url": "https://packagist.org/downloads/",
  115 + "license": [
  116 + "MIT"
  117 + ],
  118 + "authors": [
  119 + {
  120 + "name": "Roman Borschel",
  121 + "email": "roman@code-factory.org"
  122 + },
  123 + {
  124 + "name": "Benjamin Eberlei",
  125 + "email": "kontakt@beberlei.de"
  126 + },
  127 + {
  128 + "name": "Guilherme Blanco",
  129 + "email": "guilhermeblanco@gmail.com"
  130 + },
  131 + {
  132 + "name": "Jonathan Wage",
  133 + "email": "jonwage@gmail.com"
  134 + },
  135 + {
  136 + "name": "Johannes Schmitt",
  137 + "email": "schmittjoh@gmail.com"
  138 + }
  139 + ],
  140 + "description": "Caching library offering an object-oriented API for many cache backends",
  141 + "homepage": "http://www.doctrine-project.org",
  142 + "keywords": [
  143 + "cache",
  144 + "caching"
  145 + ],
  146 + "time": "2015-12-19 05:03:47"
  147 + },
  148 + {
  149 + "name": "doctrine/collections",
  150 + "version": "v1.3.0",
  151 + "source": {
  152 + "type": "git",
  153 + "url": "https://github.com/doctrine/collections.git",
  154 + "reference": "6c1e4eef75f310ea1b3e30945e9f06e652128b8a"
  155 + },
  156 + "dist": {
  157 + "type": "zip",
  158 + "url": "https://api.github.com/repos/doctrine/collections/zipball/6c1e4eef75f310ea1b3e30945e9f06e652128b8a",
  159 + "reference": "6c1e4eef75f310ea1b3e30945e9f06e652128b8a",
  160 + "shasum": ""
  161 + },
  162 + "require": {
  163 + "php": ">=5.3.2"
  164 + },
  165 + "require-dev": {
  166 + "phpunit/phpunit": "~4.0"
  167 + },
  168 + "type": "library",
  169 + "extra": {
  170 + "branch-alias": {
  171 + "dev-master": "1.2.x-dev"
  172 + }
  173 + },
  174 + "autoload": {
  175 + "psr-0": {
  176 + "Doctrine\\Common\\Collections\\": "lib/"
  177 + }
  178 + },
  179 + "notification-url": "https://packagist.org/downloads/",
  180 + "license": [
  181 + "MIT"
  182 + ],
  183 + "authors": [
  184 + {
  185 + "name": "Roman Borschel",
  186 + "email": "roman@code-factory.org"
  187 + },
  188 + {
  189 + "name": "Benjamin Eberlei",
  190 + "email": "kontakt@beberlei.de"
  191 + },
  192 + {
  193 + "name": "Guilherme Blanco",
  194 + "email": "guilhermeblanco@gmail.com"
  195 + },
  196 + {
  197 + "name": "Jonathan Wage",
  198 + "email": "jonwage@gmail.com"
  199 + },
  200 + {
  201 + "name": "Johannes Schmitt",
  202 + "email": "schmittjoh@gmail.com"
  203 + }
  204 + ],
  205 + "description": "Collections Abstraction library",
  206 + "homepage": "http://www.doctrine-project.org",
  207 + "keywords": [
  208 + "array",
  209 + "collections",
  210 + "iterator"
  211 + ],
  212 + "time": "2015-04-14 22:21:58"
  213 + },
  214 + {
  215 + "name": "doctrine/common",
  216 + "version": "v2.5.3",
  217 + "source": {
  218 + "type": "git",
  219 + "url": "https://github.com/doctrine/common.git",
  220 + "reference": "10f1f19651343f87573129ca970aef1a47a6f29e"
  221 + },
  222 + "dist": {
  223 + "type": "zip",
  224 + "url": "https://api.github.com/repos/doctrine/common/zipball/10f1f19651343f87573129ca970aef1a47a6f29e",
  225 + "reference": "10f1f19651343f87573129ca970aef1a47a6f29e",
  226 + "shasum": ""
  227 + },
  228 + "require": {
  229 + "doctrine/annotations": "1.*",
  230 + "doctrine/cache": "1.*",
  231 + "doctrine/collections": "1.*",
  232 + "doctrine/inflector": "1.*",
  233 + "doctrine/lexer": "1.*",
  234 + "php": ">=5.3.2"
  235 + },
  236 + "require-dev": {
  237 + "phpunit/phpunit": "~3.7"
  238 + },
  239 + "type": "library",
  240 + "extra": {
  241 + "branch-alias": {
  242 + "dev-master": "2.5.x-dev"
  243 + }
  244 + },
  245 + "autoload": {
  246 + "psr-0": {
  247 + "Doctrine\\Common\\": "lib/"
  248 + }
  249 + },
  250 + "notification-url": "https://packagist.org/downloads/",
  251 + "license": [
  252 + "MIT"
  253 + ],
  254 + "authors": [
  255 + {
  256 + "name": "Roman Borschel",
  257 + "email": "roman@code-factory.org"
  258 + },
  259 + {
  260 + "name": "Benjamin Eberlei",
  261 + "email": "kontakt@beberlei.de"
  262 + },
  263 + {
  264 + "name": "Guilherme Blanco",
  265 + "email": "guilhermeblanco@gmail.com"
  266 + },
  267 + {
  268 + "name": "Jonathan Wage",
  269 + "email": "jonwage@gmail.com"
  270 + },
  271 + {
  272 + "name": "Johannes Schmitt",
  273 + "email": "schmittjoh@gmail.com"
  274 + }
  275 + ],
  276 + "description": "Common Library for Doctrine projects",
  277 + "homepage": "http://www.doctrine-project.org",
  278 + "keywords": [
  279 + "annotations",
  280 + "collections",
  281 + "eventmanager",
  282 + "persistence",
  283 + "spl"
  284 + ],
  285 + "time": "2015-12-25 13:10:16"
  286 + },
  287 + {
  288 + "name": "doctrine/dbal",
  289 + "version": "v2.5.4",
  290 + "source": {
  291 + "type": "git",
  292 + "url": "https://github.com/doctrine/dbal.git",
  293 + "reference": "abbdfd1cff43a7b99d027af3be709bc8fc7d4769"
  294 + },
  295 + "dist": {
  296 + "type": "zip",
  297 + "url": "https://api.github.com/repos/doctrine/dbal/zipball/abbdfd1cff43a7b99d027af3be709bc8fc7d4769",
  298 + "reference": "abbdfd1cff43a7b99d027af3be709bc8fc7d4769",
  299 + "shasum": ""
  300 + },
  301 + "require": {
  302 + "doctrine/common": ">=2.4,<2.7-dev",
  303 + "php": ">=5.3.2"
  304 + },
  305 + "require-dev": {
  306 + "phpunit/phpunit": "4.*",
  307 + "symfony/console": "2.*"
  308 + },
  309 + "suggest": {
  310 + "symfony/console": "For helpful console commands such as SQL execution and import of files."
  311 + },
  312 + "bin": [
  313 + "bin/doctrine-dbal"
  314 + ],
  315 + "type": "library",
  316 + "extra": {
  317 + "branch-alias": {
  318 + "dev-master": "2.5.x-dev"
  319 + }
  320 + },
  321 + "autoload": {
  322 + "psr-0": {
  323 + "Doctrine\\DBAL\\": "lib/"
  324 + }
  325 + },
  326 + "notification-url": "https://packagist.org/downloads/",
  327 + "license": [
  328 + "MIT"
  329 + ],
  330 + "authors": [
  331 + {
  332 + "name": "Roman Borschel",
  333 + "email": "roman@code-factory.org"
  334 + },
  335 + {
  336 + "name": "Benjamin Eberlei",
  337 + "email": "kontakt@beberlei.de"
  338 + },
  339 + {
  340 + "name": "Guilherme Blanco",
  341 + "email": "guilhermeblanco@gmail.com"
  342 + },
  343 + {
  344 + "name": "Jonathan Wage",
  345 + "email": "jonwage@gmail.com"
  346 + }
  347 + ],
  348 + "description": "Database Abstraction Layer",
  349 + "homepage": "http://www.doctrine-project.org",
  350 + "keywords": [
  351 + "database",
  352 + "dbal",
  353 + "persistence",
  354 + "queryobject"
  355 + ],
  356 + "time": "2016-01-05 22:11:12"
  357 + },
  358 + {
  359 + "name": "doctrine/doctrine-bundle",
  360 + "version": "1.6.3",
  361 + "source": {
  362 + "type": "git",
  363 + "url": "https://github.com/doctrine/DoctrineBundle.git",
  364 + "reference": "fd51907c6c76acaa8a5234822a4f901c1500afc1"
  365 + },
  366 + "dist": {
  367 + "type": "zip",
  368 + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/fd51907c6c76acaa8a5234822a4f901c1500afc1",
  369 + "reference": "fd51907c6c76acaa8a5234822a4f901c1500afc1",
  370 + "shasum": ""
  371 + },
  372 + "require": {
  373 + "doctrine/dbal": "~2.3",
  374 + "doctrine/doctrine-cache-bundle": "~1.0",
  375 + "jdorn/sql-formatter": "~1.1",
  376 + "php": ">=5.3.2",
  377 + "symfony/console": "~2.3|~3.0",
  378 + "symfony/doctrine-bridge": "~2.2|~3.0",
  379 + "symfony/framework-bundle": "~2.3|~3.0"
  380 + },
  381 + "require-dev": {
  382 + "doctrine/orm": "~2.3",
  383 + "phpunit/phpunit": "~4",
  384 + "satooshi/php-coveralls": "~0.6.1",
  385 + "symfony/phpunit-bridge": "~2.7|~3.0",
  386 + "symfony/property-info": "~2.8|~3.0",
  387 + "symfony/validator": "~2.2|~3.0",
  388 + "symfony/yaml": "~2.2|~3.0",
  389 + "twig/twig": "~1.10"
  390 + },
  391 + "suggest": {
  392 + "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.",
  393 + "symfony/web-profiler-bundle": "To use the data collector."
  394 + },
  395 + "type": "symfony-bundle",
  396 + "extra": {
  397 + "branch-alias": {
  398 + "dev-master": "1.6.x-dev"
  399 + }
  400 + },
  401 + "autoload": {
  402 + "psr-4": {
  403 + "Doctrine\\Bundle\\DoctrineBundle\\": ""
  404 + }
  405 + },
  406 + "notification-url": "https://packagist.org/downloads/",
  407 + "license": [
  408 + "MIT"
  409 + ],
  410 + "authors": [
  411 + {
  412 + "name": "Symfony Community",
  413 + "homepage": "http://symfony.com/contributors"
  414 + },
  415 + {
  416 + "name": "Benjamin Eberlei",
  417 + "email": "kontakt@beberlei.de"
  418 + },
  419 + {
  420 + "name": "Doctrine Project",
  421 + "homepage": "http://www.doctrine-project.org/"
  422 + },
  423 + {
  424 + "name": "Fabien Potencier",
  425 + "email": "fabien@symfony.com"
  426 + }
  427 + ],
  428 + "description": "Symfony DoctrineBundle",
  429 + "homepage": "http://www.doctrine-project.org",
  430 + "keywords": [
  431 + "database",
  432 + "dbal",
  433 + "orm",
  434 + "persistence"
  435 + ],
  436 + "time": "2016-04-21 19:55:56"
  437 + },
  438 + {
  439 + "name": "doctrine/doctrine-cache-bundle",
  440 + "version": "1.3.0",
  441 + "source": {
  442 + "type": "git",
  443 + "url": "https://github.com/doctrine/DoctrineCacheBundle.git",
  444 + "reference": "18c600a9b82f6454d2e81ca4957cdd56a1cf3504"
  445 + },
  446 + "dist": {
  447 + "type": "zip",
  448 + "url": "https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/18c600a9b82f6454d2e81ca4957cdd56a1cf3504",
  449 + "reference": "18c600a9b82f6454d2e81ca4957cdd56a1cf3504",
  450 + "shasum": ""
  451 + },
  452 + "require": {
  453 + "doctrine/cache": "^1.4.2",
  454 + "doctrine/inflector": "~1.0",
  455 + "php": ">=5.3.2",
  456 + "symfony/doctrine-bridge": "~2.2|~3.0"
  457 + },
  458 + "require-dev": {
  459 + "instaclick/coding-standard": "~1.1",
  460 + "instaclick/object-calisthenics-sniffs": "dev-master",
  461 + "instaclick/symfony2-coding-standard": "dev-remaster",
  462 + "phpunit/phpunit": "~4",
  463 + "predis/predis": "~0.8",
  464 + "satooshi/php-coveralls": "~0.6.1",
  465 + "squizlabs/php_codesniffer": "~1.5",
  466 + "symfony/console": "~2.2|~3.0",
  467 + "symfony/finder": "~2.2|~3.0",
  468 + "symfony/framework-bundle": "~2.2|~3.0",
  469 + "symfony/phpunit-bridge": "~2.7|~3.0",
  470 + "symfony/security-acl": "~2.3|~3.0",
  471 + "symfony/validator": "~2.2|~3.0",
  472 + "symfony/yaml": "~2.2|~3.0"
  473 + },
  474 + "suggest": {
  475 + "symfony/security-acl": "For using this bundle to cache ACLs"
  476 + },
  477 + "type": "symfony-bundle",
  478 + "extra": {
  479 + "branch-alias": {
  480 + "dev-master": "1.2.x-dev"
  481 + }
  482 + },
  483 + "autoload": {
  484 + "psr-4": {
  485 + "Doctrine\\Bundle\\DoctrineCacheBundle\\": ""
  486 + }
  487 + },
  488 + "notification-url": "https://packagist.org/downloads/",
  489 + "license": [
  490 + "MIT"
  491 + ],
  492 + "authors": [
  493 + {
  494 + "name": "Symfony Community",
  495 + "homepage": "http://symfony.com/contributors"
  496 + },
  497 + {
  498 + "name": "Benjamin Eberlei",
  499 + "email": "kontakt@beberlei.de"
  500 + },
  501 + {
  502 + "name": "Fabio B. Silva",
  503 + "email": "fabio.bat.silva@gmail.com"
  504 + },
  505 + {
  506 + "name": "Guilherme Blanco",
  507 + "email": "guilhermeblanco@hotmail.com"
  508 + },
  509 + {
  510 + "name": "Doctrine Project",
  511 + "homepage": "http://www.doctrine-project.org/"
  512 + },
  513 + {
  514 + "name": "Fabien Potencier",
  515 + "email": "fabien@symfony.com"
  516 + }
  517 + ],
  518 + "description": "Symfony Bundle for Doctrine Cache",
  519 + "homepage": "http://www.doctrine-project.org",
  520 + "keywords": [
  521 + "cache",
  522 + "caching"
  523 + ],
  524 + "time": "2016-01-26 17:28:51"
  525 + },
  526 + {
  527 + "name": "doctrine/inflector",
  528 + "version": "v1.1.0",
  529 + "source": {
  530 + "type": "git",
  531 + "url": "https://github.com/doctrine/inflector.git",
  532 + "reference": "90b2128806bfde671b6952ab8bea493942c1fdae"
  533 + },
  534 + "dist": {
  535 + "type": "zip",
  536 + "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae",
  537 + "reference": "90b2128806bfde671b6952ab8bea493942c1fdae",
  538 + "shasum": ""
  539 + },
  540 + "require": {
  541 + "php": ">=5.3.2"
  542 + },
  543 + "require-dev": {
  544 + "phpunit/phpunit": "4.*"
  545 + },
  546 + "type": "library",
  547 + "extra": {
  548 + "branch-alias": {
  549 + "dev-master": "1.1.x-dev"
  550 + }
  551 + },
  552 + "autoload": {
  553 + "psr-0": {
  554 + "Doctrine\\Common\\Inflector\\": "lib/"
  555 + }
  556 + },
  557 + "notification-url": "https://packagist.org/downloads/",
  558 + "license": [
  559 + "MIT"
  560 + ],
  561 + "authors": [
  562 + {
  563 + "name": "Roman Borschel",
  564 + "email": "roman@code-factory.org"
  565 + },
  566 + {
  567 + "name": "Benjamin Eberlei",
  568 + "email": "kontakt@beberlei.de"
  569 + },
  570 + {
  571 + "name": "Guilherme Blanco",
  572 + "email": "guilhermeblanco@gmail.com"
  573 + },
  574 + {
  575 + "name": "Jonathan Wage",
  576 + "email": "jonwage@gmail.com"
  577 + },
  578 + {
  579 + "name": "Johannes Schmitt",
  580 + "email": "schmittjoh@gmail.com"
  581 + }
  582 + ],
  583 + "description": "Common String Manipulations with regard to casing and singular/plural rules.",
  584 + "homepage": "http://www.doctrine-project.org",
  585 + "keywords": [
  586 + "inflection",
  587 + "pluralize",
  588 + "singularize",
  589 + "string"
  590 + ],
  591 + "time": "2015-11-06 14:35:42"
  592 + },
  593 + {
  594 + "name": "doctrine/lexer",
  595 + "version": "v1.0.1",
  596 + "source": {
  597 + "type": "git",
  598 + "url": "https://github.com/doctrine/lexer.git",
  599 + "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
  600 + },
  601 + "dist": {
  602 + "type": "zip",
  603 + "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
  604 + "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
  605 + "shasum": ""
  606 + },
  607 + "require": {
  608 + "php": ">=5.3.2"
  609 + },
  610 + "type": "library",
  611 + "extra": {
  612 + "branch-alias": {
  613 + "dev-master": "1.0.x-dev"
  614 + }
  615 + },
  616 + "autoload": {
  617 + "psr-0": {
  618 + "Doctrine\\Common\\Lexer\\": "lib/"
  619 + }
  620 + },
  621 + "notification-url": "https://packagist.org/downloads/",
  622 + "license": [
  623 + "MIT"
  624 + ],
  625 + "authors": [
  626 + {
  627 + "name": "Roman Borschel",
  628 + "email": "roman@code-factory.org"
  629 + },
  630 + {
  631 + "name": "Guilherme Blanco",
  632 + "email": "guilhermeblanco@gmail.com"
  633 + },
  634 + {
  635 + "name": "Johannes Schmitt",
  636 + "email": "schmittjoh@gmail.com"
  637 + }
  638 + ],
  639 + "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
  640 + "homepage": "http://www.doctrine-project.org",
  641 + "keywords": [
  642 + "lexer",
  643 + "parser"
  644 + ],
  645 + "time": "2014-09-09 13:34:57"
  646 + },
  647 + {
  648 + "name": "doctrine/orm",
  649 + "version": "v2.4.8",
  650 + "source": {
  651 + "type": "git",
  652 + "url": "https://github.com/doctrine/doctrine2.git",
  653 + "reference": "5aedac1e5c5caaeac14798822c70325dc242d467"
  654 + },
  655 + "dist": {
  656 + "type": "zip",
  657 + "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/5aedac1e5c5caaeac14798822c70325dc242d467",
  658 + "reference": "5aedac1e5c5caaeac14798822c70325dc242d467",
  659 + "shasum": ""
  660 + },
  661 + "require": {
  662 + "doctrine/collections": "~1.1",
  663 + "doctrine/dbal": "~2.4",
  664 + "ext-pdo": "*",
  665 + "php": ">=5.3.2",
  666 + "symfony/console": "~2.0"
  667 + },
  668 + "require-dev": {
  669 + "satooshi/php-coveralls": "dev-master",
  670 + "symfony/yaml": "~2.1"
  671 + },
  672 + "suggest": {
  673 + "symfony/yaml": "If you want to use YAML Metadata Mapping Driver"
  674 + },
  675 + "bin": [
  676 + "bin/doctrine",
  677 + "bin/doctrine.php"
  678 + ],
  679 + "type": "library",
  680 + "extra": {
  681 + "branch-alias": {
  682 + "dev-master": "2.4.x-dev"
  683 + }
  684 + },
  685 + "autoload": {
  686 + "psr-0": {
  687 + "Doctrine\\ORM\\": "lib/"
  688 + }
  689 + },
  690 + "notification-url": "https://packagist.org/downloads/",
  691 + "license": [
  692 + "MIT"
  693 + ],
  694 + "authors": [
  695 + {
  696 + "name": "Roman Borschel",
  697 + "email": "roman@code-factory.org"
  698 + },
  699 + {
  700 + "name": "Benjamin Eberlei",
  701 + "email": "kontakt@beberlei.de"
  702 + },
  703 + {
  704 + "name": "Guilherme Blanco",
  705 + "email": "guilhermeblanco@gmail.com"
  706 + },
  707 + {
  708 + "name": "Jonathan Wage",
  709 + "email": "jonwage@gmail.com"
  710 + }
  711 + ],
  712 + "description": "Object-Relational-Mapper for PHP",
  713 + "homepage": "http://www.doctrine-project.org",
  714 + "keywords": [
  715 + "database",
  716 + "orm"
  717 + ],
  718 + "time": "2015-08-31 13:19:01"
  719 + },
  720 + {
  721 + "name": "incenteev/composer-parameter-handler",
  722 + "version": "v2.1.2",
  723 + "source": {
  724 + "type": "git",
  725 + "url": "https://github.com/Incenteev/ParameterHandler.git",
  726 + "reference": "d7ce7f06136109e81d1cb9d57066c4d4a99cf1cc"
  727 + },
  728 + "dist": {
  729 + "type": "zip",
  730 + "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/d7ce7f06136109e81d1cb9d57066c4d4a99cf1cc",
  731 + "reference": "d7ce7f06136109e81d1cb9d57066c4d4a99cf1cc",
  732 + "shasum": ""
  733 + },
  734 + "require": {
  735 + "php": ">=5.3.3",
  736 + "symfony/yaml": "~2.3|~3.0"
  737 + },
  738 + "require-dev": {
  739 + "composer/composer": "1.0.*@dev",
  740 + "phpspec/prophecy-phpunit": "~1.0",
  741 + "symfony/filesystem": "~2.2"
  742 + },
  743 + "type": "library",
  744 + "extra": {
  745 + "branch-alias": {
  746 + "dev-master": "2.1.x-dev"
  747 + }
  748 + },
  749 + "autoload": {
  750 + "psr-4": {
  751 + "Incenteev\\ParameterHandler\\": ""
  752 + }
  753 + },
  754 + "notification-url": "https://packagist.org/downloads/",
  755 + "license": [
  756 + "MIT"
  757 + ],
  758 + "authors": [
  759 + {
  760 + "name": "Christophe Coevoet",
  761 + "email": "stof@notk.org"
  762 + }
  763 + ],
  764 + "description": "Composer script handling your ignored parameter file",
  765 + "homepage": "https://github.com/Incenteev/ParameterHandler",
  766 + "keywords": [
  767 + "parameters management"
  768 + ],
  769 + "time": "2015-11-10 17:04:01"
  770 + },
  771 + {
  772 + "name": "ircmaxell/password-compat",
  773 + "version": "v1.0.4",
  774 + "source": {
  775 + "type": "git",
  776 + "url": "https://github.com/ircmaxell/password_compat.git",
  777 + "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c"
  778 + },
  779 + "dist": {
  780 + "type": "zip",
  781 + "url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c",
  782 + "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c",
  783 + "shasum": ""
  784 + },
  785 + "require-dev": {
  786 + "phpunit/phpunit": "4.*"
  787 + },
  788 + "type": "library",
  789 + "autoload": {
  790 + "files": [
  791 + "lib/password.php"
  792 + ]
  793 + },
  794 + "notification-url": "https://packagist.org/downloads/",
  795 + "license": [
  796 + "MIT"
  797 + ],
  798 + "authors": [
  799 + {
  800 + "name": "Anthony Ferrara",
  801 + "email": "ircmaxell@php.net",
  802 + "homepage": "http://blog.ircmaxell.com"
  803 + }
  804 + ],
  805 + "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash",
  806 + "homepage": "https://github.com/ircmaxell/password_compat",
  807 + "keywords": [
  808 + "hashing",
  809 + "password"
  810 + ],
  811 + "time": "2014-11-20 16:49:30"
  812 + },
  813 + {
  814 + "name": "jdorn/sql-formatter",
  815 + "version": "v1.2.17",
  816 + "source": {
  817 + "type": "git",
  818 + "url": "https://github.com/jdorn/sql-formatter.git",
  819 + "reference": "64990d96e0959dff8e059dfcdc1af130728d92bc"
  820 + },
  821 + "dist": {
  822 + "type": "zip",
  823 + "url": "https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc",
  824 + "reference": "64990d96e0959dff8e059dfcdc1af130728d92bc",
  825 + "shasum": ""
  826 + },
  827 + "require": {
  828 + "php": ">=5.2.4"
  829 + },
  830 + "require-dev": {
  831 + "phpunit/phpunit": "3.7.*"
  832 + },
  833 + "type": "library",
  834 + "extra": {
  835 + "branch-alias": {
  836 + "dev-master": "1.3.x-dev"
  837 + }
  838 + },
  839 + "autoload": {
  840 + "classmap": [
  841 + "lib"
  842 + ]
  843 + },
  844 + "notification-url": "https://packagist.org/downloads/",
  845 + "license": [
  846 + "MIT"
  847 + ],
  848 + "authors": [
  849 + {
  850 + "name": "Jeremy Dorn",
  851 + "email": "jeremy@jeremydorn.com",
  852 + "homepage": "http://jeremydorn.com/"
  853 + }
  854 + ],
  855 + "description": "a PHP SQL highlighting library",
  856 + "homepage": "https://github.com/jdorn/sql-formatter/",
  857 + "keywords": [
  858 + "highlight",
  859 + "sql"
  860 + ],
  861 + "time": "2014-01-12 16:20:24"
  862 + },
  863 + {
  864 + "name": "monolog/monolog",
  865 + "version": "1.19.0",
  866 + "source": {
  867 + "type": "git",
  868 + "url": "https://github.com/Seldaek/monolog.git",
  869 + "reference": "5f56ed5212dc509c8dc8caeba2715732abb32dbf"
  870 + },
  871 + "dist": {
  872 + "type": "zip",
  873 + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/5f56ed5212dc509c8dc8caeba2715732abb32dbf",
  874 + "reference": "5f56ed5212dc509c8dc8caeba2715732abb32dbf",
  875 + "shasum": ""
  876 + },
  877 + "require": {
  878 + "php": ">=5.3.0",
  879 + "psr/log": "~1.0"
  880 + },
  881 + "provide": {
  882 + "psr/log-implementation": "1.0.0"
  883 + },
  884 + "require-dev": {
  885 + "aws/aws-sdk-php": "^2.4.9",
  886 + "doctrine/couchdb": "~1.0@dev",
  887 + "graylog2/gelf-php": "~1.0",
  888 + "jakub-onderka/php-parallel-lint": "0.9",
  889 + "php-amqplib/php-amqplib": "~2.4",
  890 + "php-console/php-console": "^3.1.3",
  891 + "phpunit/phpunit": "~4.5",
  892 + "phpunit/phpunit-mock-objects": "2.3.0",
  893 + "raven/raven": "^0.13",
  894 + "ruflin/elastica": ">=0.90 <3.0",
  895 + "swiftmailer/swiftmailer": "~5.3"
  896 + },
  897 + "suggest": {
  898 + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
  899 + "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
  900 + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
  901 + "ext-mongo": "Allow sending log messages to a MongoDB server",
  902 + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
  903 + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
  904 + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
  905 + "php-console/php-console": "Allow sending log messages to Google Chrome",
  906 + "raven/raven": "Allow sending log messages to a Sentry server",
  907 + "rollbar/rollbar": "Allow sending log messages to Rollbar",
  908 + "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
  909 + },
  910 + "type": "library",
  911 + "extra": {
  912 + "branch-alias": {
  913 + "dev-master": "2.0.x-dev"
  914 + }
  915 + },
  916 + "autoload": {
  917 + "psr-4": {
  918 + "Monolog\\": "src/Monolog"
  919 + }
  920 + },
  921 + "notification-url": "https://packagist.org/downloads/",
  922 + "license": [
  923 + "MIT"
  924 + ],
  925 + "authors": [
  926 + {
  927 + "name": "Jordi Boggiano",
  928 + "email": "j.boggiano@seld.be",
  929 + "homepage": "http://seld.be"
  930 + }
  931 + ],
  932 + "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
  933 + "homepage": "http://github.com/Seldaek/monolog",
  934 + "keywords": [
  935 + "log",
  936 + "logging",
  937 + "psr-3"
  938 + ],
  939 + "time": "2016-04-12 18:29:35"
  940 + },
  941 + {
  942 + "name": "paragonie/random_compat",
  943 + "version": "v2.0.2",
  944 + "source": {
  945 + "type": "git",
  946 + "url": "https://github.com/paragonie/random_compat.git",
  947 + "reference": "088c04e2f261c33bed6ca5245491cfca69195ccf"
  948 + },
  949 + "dist": {
  950 + "type": "zip",
  951 + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/088c04e2f261c33bed6ca5245491cfca69195ccf",
  952 + "reference": "088c04e2f261c33bed6ca5245491cfca69195ccf",
  953 + "shasum": ""
  954 + },
  955 + "require": {
  956 + "php": ">=5.2.0"
  957 + },
  958 + "require-dev": {
  959 + "phpunit/phpunit": "4.*|5.*"
  960 + },
  961 + "suggest": {
  962 + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
  963 + },
  964 + "type": "library",
  965 + "autoload": {
  966 + "files": [
  967 + "lib/random.php"
  968 + ]
  969 + },
  970 + "notification-url": "https://packagist.org/downloads/",
  971 + "license": [
  972 + "MIT"
  973 + ],
  974 + "authors": [
  975 + {
  976 + "name": "Paragon Initiative Enterprises",
  977 + "email": "security@paragonie.com",
  978 + "homepage": "https://paragonie.com"
  979 + }
  980 + ],
  981 + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
  982 + "keywords": [
  983 + "csprng",
  984 + "pseudorandom",
  985 + "random"
  986 + ],
  987 + "time": "2016-04-03 06:00:07"
  988 + },
  989 + {
  990 + "name": "psr/log",
  991 + "version": "1.0.0",
  992 + "source": {
  993 + "type": "git",
  994 + "url": "https://github.com/php-fig/log.git",
  995 + "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b"
  996 + },
  997 + "dist": {
  998 + "type": "zip",
  999 + "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",
  1000 + "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b",
  1001 + "shasum": ""
  1002 + },
  1003 + "type": "library",
  1004 + "autoload": {
  1005 + "psr-0": {
  1006 + "Psr\\Log\\": ""
  1007 + }
  1008 + },
  1009 + "notification-url": "https://packagist.org/downloads/",
  1010 + "license": [
  1011 + "MIT"
  1012 + ],
  1013 + "authors": [
  1014 + {
  1015 + "name": "PHP-FIG",
  1016 + "homepage": "http://www.php-fig.org/"
  1017 + }
  1018 + ],
  1019 + "description": "Common interface for logging libraries",
  1020 + "keywords": [
  1021 + "log",
  1022 + "psr",
  1023 + "psr-3"
  1024 + ],
  1025 + "time": "2012-12-21 11:40:51"
  1026 + },
  1027 + {
  1028 + "name": "sensio/distribution-bundle",
  1029 + "version": "v5.0.6",
  1030 + "source": {
  1031 + "type": "git",
  1032 + "url": "https://github.com/sensiolabs/SensioDistributionBundle.git",
  1033 + "reference": "ffe306d09c1f2bad721237f63b2169d1b78253d0"
  1034 + },
  1035 + "dist": {
  1036 + "type": "zip",
  1037 + "url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/ffe306d09c1f2bad721237f63b2169d1b78253d0",
  1038 + "reference": "ffe306d09c1f2bad721237f63b2169d1b78253d0",
  1039 + "shasum": ""
  1040 + },
  1041 + "require": {
  1042 + "php": ">=5.3.9",
  1043 + "sensiolabs/security-checker": "~3.0",
  1044 + "symfony/class-loader": "~2.3|~3.0",
  1045 + "symfony/config": "~2.3|~3.0",
  1046 + "symfony/dependency-injection": "~2.3|~3.0",
  1047 + "symfony/filesystem": "~2.3|~3.0",
  1048 + "symfony/http-kernel": "~2.3|~3.0",
  1049 + "symfony/process": "~2.3|~3.0"
  1050 + },
  1051 + "type": "symfony-bundle",
  1052 + "extra": {
  1053 + "branch-alias": {
  1054 + "dev-master": "5.0.x-dev"
  1055 + }
  1056 + },
  1057 + "autoload": {
  1058 + "psr-4": {
  1059 + "Sensio\\Bundle\\DistributionBundle\\": ""
  1060 + }
  1061 + },
  1062 + "notification-url": "https://packagist.org/downloads/",
  1063 + "license": [
  1064 + "MIT"
  1065 + ],
  1066 + "authors": [
  1067 + {
  1068 + "name": "Fabien Potencier",
  1069 + "email": "fabien@symfony.com"
  1070 + }
  1071 + ],
  1072 + "description": "Base bundle for Symfony Distributions",
  1073 + "keywords": [
  1074 + "configuration",
  1075 + "distribution"
  1076 + ],
  1077 + "time": "2016-04-25 20:50:31"
  1078 + },
  1079 + {
  1080 + "name": "sensio/framework-extra-bundle",
  1081 + "version": "v3.0.16",
  1082 + "source": {
  1083 + "type": "git",
  1084 + "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git",
  1085 + "reference": "507a15f56fa7699f6cc8c2c7de4080b19ce22546"
  1086 + },
  1087 + "dist": {
  1088 + "type": "zip",
  1089 + "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/507a15f56fa7699f6cc8c2c7de4080b19ce22546",
  1090 + "reference": "507a15f56fa7699f6cc8c2c7de4080b19ce22546",
  1091 + "shasum": ""
  1092 + },
  1093 + "require": {
  1094 + "doctrine/common": "~2.2",
  1095 + "symfony/dependency-injection": "~2.3|~3.0",
  1096 + "symfony/framework-bundle": "~2.3|~3.0"
  1097 + },
  1098 + "require-dev": {
  1099 + "symfony/browser-kit": "~2.3|~3.0",
  1100 + "symfony/dom-crawler": "~2.3|~3.0",
  1101 + "symfony/expression-language": "~2.4|~3.0",
  1102 + "symfony/finder": "~2.3|~3.0",
  1103 + "symfony/phpunit-bridge": "~2.7|~3.0",
  1104 + "symfony/security-bundle": "~2.4|~3.0",
  1105 + "symfony/twig-bundle": "~2.3|~3.0",
  1106 + "twig/twig": "~1.11|~2.0"
  1107 + },
  1108 + "suggest": {
  1109 + "symfony/expression-language": "",
  1110 + "symfony/psr-http-message-bridge": "To use the PSR-7 converters",
  1111 + "symfony/security-bundle": ""
  1112 + },
  1113 + "type": "symfony-bundle",
  1114 + "extra": {
  1115 + "branch-alias": {
  1116 + "dev-master": "3.0.x-dev"
  1117 + }
  1118 + },
  1119 + "autoload": {
  1120 + "psr-4": {
  1121 + "Sensio\\Bundle\\FrameworkExtraBundle\\": ""
  1122 + }
  1123 + },
  1124 + "notification-url": "https://packagist.org/downloads/",
  1125 + "license": [
  1126 + "MIT"
  1127 + ],
  1128 + "authors": [
  1129 + {
  1130 + "name": "Fabien Potencier",
  1131 + "email": "fabien@symfony.com"
  1132 + }
  1133 + ],
  1134 + "description": "This bundle provides a way to configure your controllers with annotations",
  1135 + "keywords": [
  1136 + "annotations",
  1137 + "controllers"
  1138 + ],
  1139 + "time": "2016-03-25 17:08:27"
  1140 + },
  1141 + {
  1142 + "name": "sensiolabs/security-checker",
  1143 + "version": "v3.0.2",
  1144 + "source": {
  1145 + "type": "git",
  1146 + "url": "https://github.com/sensiolabs/security-checker.git",
  1147 + "reference": "21696b0daa731064c23cfb694c60a2584a7b6e93"
  1148 + },
  1149 + "dist": {
  1150 + "type": "zip",
  1151 + "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/21696b0daa731064c23cfb694c60a2584a7b6e93",
  1152 + "reference": "21696b0daa731064c23cfb694c60a2584a7b6e93",
  1153 + "shasum": ""
  1154 + },
  1155 + "require": {
  1156 + "symfony/console": "~2.0|~3.0"
  1157 + },
  1158 + "bin": [
  1159 + "security-checker"
  1160 + ],
  1161 + "type": "library",
  1162 + "extra": {
  1163 + "branch-alias": {
  1164 + "dev-master": "3.0-dev"
  1165 + }
  1166 + },
  1167 + "autoload": {
  1168 + "psr-0": {
  1169 + "SensioLabs\\Security": ""
  1170 + }
  1171 + },
  1172 + "notification-url": "https://packagist.org/downloads/",
  1173 + "license": [
  1174 + "MIT"
  1175 + ],
  1176 + "authors": [
  1177 + {
  1178 + "name": "Fabien Potencier",
  1179 + "email": "fabien.potencier@gmail.com"
  1180 + }
  1181 + ],
  1182 + "description": "A security checker for your composer.lock",
  1183 + "time": "2015-11-07 08:07:40"
  1184 + },
  1185 + {
  1186 + "name": "swiftmailer/swiftmailer",
  1187 + "version": "v5.4.2",
  1188 + "source": {
  1189 + "type": "git",
  1190 + "url": "https://github.com/swiftmailer/swiftmailer.git",
  1191 + "reference": "d8db871a54619458a805229a057ea2af33c753e8"
  1192 + },
  1193 + "dist": {
  1194 + "type": "zip",
  1195 + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/d8db871a54619458a805229a057ea2af33c753e8",
  1196 + "reference": "d8db871a54619458a805229a057ea2af33c753e8",
  1197 + "shasum": ""
  1198 + },
  1199 + "require": {
  1200 + "php": ">=5.3.3"
  1201 + },
  1202 + "require-dev": {
  1203 + "mockery/mockery": "~0.9.1,<0.9.4"
  1204 + },
  1205 + "type": "library",
  1206 + "extra": {
  1207 + "branch-alias": {
  1208 + "dev-master": "5.4-dev"
  1209 + }
  1210 + },
  1211 + "autoload": {
  1212 + "files": [
  1213 + "lib/swift_required.php"
  1214 + ]
  1215 + },
  1216 + "notification-url": "https://packagist.org/downloads/",
  1217 + "license": [
  1218 + "MIT"
  1219 + ],
  1220 + "authors": [
  1221 + {
  1222 + "name": "Chris Corbyn"
  1223 + },
  1224 + {
  1225 + "name": "Fabien Potencier",
  1226 + "email": "fabien@symfony.com"
  1227 + }
  1228 + ],
  1229 + "description": "Swiftmailer, free feature-rich PHP mailer",
  1230 + "homepage": "http://swiftmailer.org",
  1231 + "keywords": [
  1232 + "email",
  1233 + "mail",
  1234 + "mailer"
  1235 + ],
  1236 + "time": "2016-05-01 08:45:47"
  1237 + },
  1238 + {
  1239 + "name": "symfony/monolog-bundle",
  1240 + "version": "2.11.1",
  1241 + "source": {
  1242 + "type": "git",
  1243 + "url": "https://github.com/symfony/monolog-bundle.git",
  1244 + "reference": "e7caf4936c7be82bc6d68df87f1d23a0d5bf6e00"
  1245 + },
  1246 + "dist": {
  1247 + "type": "zip",
  1248 + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/e7caf4936c7be82bc6d68df87f1d23a0d5bf6e00",
  1249 + "reference": "e7caf4936c7be82bc6d68df87f1d23a0d5bf6e00",
  1250 + "shasum": ""
  1251 + },
  1252 + "require": {
  1253 + "monolog/monolog": "~1.18",
  1254 + "php": ">=5.3.2",
  1255 + "symfony/config": "~2.3|~3.0",
  1256 + "symfony/dependency-injection": "~2.3|~3.0",
  1257 + "symfony/http-kernel": "~2.3|~3.0",
  1258 + "symfony/monolog-bridge": "~2.3|~3.0"
  1259 + },
  1260 + "require-dev": {
  1261 + "phpunit/phpunit": "^4.8",
  1262 + "symfony/console": "~2.3|~3.0",
  1263 + "symfony/yaml": "~2.3|~3.0"
  1264 + },
  1265 + "type": "symfony-bundle",
  1266 + "extra": {
  1267 + "branch-alias": {
  1268 + "dev-master": "2.x-dev"
  1269 + }
  1270 + },
  1271 + "autoload": {
  1272 + "psr-4": {
  1273 + "Symfony\\Bundle\\MonologBundle\\": ""
  1274 + }
  1275 + },
  1276 + "notification-url": "https://packagist.org/downloads/",
  1277 + "license": [
  1278 + "MIT"
  1279 + ],
  1280 + "authors": [
  1281 + {
  1282 + "name": "Symfony Community",
  1283 + "homepage": "http://symfony.com/contributors"
  1284 + },
  1285 + {
  1286 + "name": "Fabien Potencier",
  1287 + "email": "fabien@symfony.com"
  1288 + }
  1289 + ],
  1290 + "description": "Symfony MonologBundle",
  1291 + "homepage": "http://symfony.com",
  1292 + "keywords": [
  1293 + "log",
  1294 + "logging"
  1295 + ],
  1296 + "time": "2016-04-13 16:21:01"
  1297 + },
  1298 + {
  1299 + "name": "symfony/polyfill-apcu",
  1300 + "version": "v1.2.0",
  1301 + "source": {
  1302 + "type": "git",
  1303 + "url": "https://github.com/symfony/polyfill-apcu.git",
  1304 + "reference": "6d58bceaeea2c2d3eb62503839b18646e161cd6b"
  1305 + },
  1306 + "dist": {
  1307 + "type": "zip",
  1308 + "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/6d58bceaeea2c2d3eb62503839b18646e161cd6b",
  1309 + "reference": "6d58bceaeea2c2d3eb62503839b18646e161cd6b",
  1310 + "shasum": ""
  1311 + },
  1312 + "require": {
  1313 + "php": ">=5.3.3"
  1314 + },
  1315 + "type": "library",
  1316 + "extra": {
  1317 + "branch-alias": {
  1318 + "dev-master": "1.2-dev"
  1319 + }
  1320 + },
  1321 + "autoload": {
  1322 + "files": [
  1323 + "bootstrap.php"
  1324 + ]
  1325 + },
  1326 + "notification-url": "https://packagist.org/downloads/",
  1327 + "license": [
  1328 + "MIT"
  1329 + ],
  1330 + "authors": [
  1331 + {
  1332 + "name": "Nicolas Grekas",
  1333 + "email": "p@tchwork.com"
  1334 + },
  1335 + {
  1336 + "name": "Symfony Community",
  1337 + "homepage": "https://symfony.com/contributors"
  1338 + }
  1339 + ],
  1340 + "description": "Symfony polyfill backporting apcu_* functions to lower PHP versions",
  1341 + "homepage": "https://symfony.com",
  1342 + "keywords": [
  1343 + "apcu",
  1344 + "compatibility",
  1345 + "polyfill",
  1346 + "portable",
  1347 + "shim"
  1348 + ],
  1349 + "time": "2016-05-18 14:26:46"
  1350 + },
  1351 + {
  1352 + "name": "symfony/polyfill-intl-icu",
  1353 + "version": "v1.2.0",
  1354 + "source": {
  1355 + "type": "git",
  1356 + "url": "https://github.com/symfony/polyfill-intl-icu.git",
  1357 + "reference": "0f8dc2c45f69f8672379e9210bca4a115cd5146f"
  1358 + },
  1359 + "dist": {
  1360 + "type": "zip",
  1361 + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/0f8dc2c45f69f8672379e9210bca4a115cd5146f",
  1362 + "reference": "0f8dc2c45f69f8672379e9210bca4a115cd5146f",
  1363 + "shasum": ""
  1364 + },
  1365 + "require": {
  1366 + "php": ">=5.3.3",
  1367 + "symfony/intl": "~2.3|~3.0"
  1368 + },
  1369 + "suggest": {
  1370 + "ext-intl": "For best performance"
  1371 + },
  1372 + "type": "library",
  1373 + "extra": {
  1374 + "branch-alias": {
  1375 + "dev-master": "1.2-dev"
  1376 + }
  1377 + },
  1378 + "autoload": {
  1379 + "files": [
  1380 + "bootstrap.php"
  1381 + ]
  1382 + },
  1383 + "notification-url": "https://packagist.org/downloads/",
  1384 + "license": [
  1385 + "MIT"
  1386 + ],
  1387 + "authors": [
  1388 + {
  1389 + "name": "Nicolas Grekas",
  1390 + "email": "p@tchwork.com"
  1391 + },
  1392 + {
  1393 + "name": "Symfony Community",
  1394 + "homepage": "https://symfony.com/contributors"
  1395 + }
  1396 + ],
  1397 + "description": "Symfony polyfill for intl's ICU-related data and classes",
  1398 + "homepage": "https://symfony.com",
  1399 + "keywords": [
  1400 + "compatibility",
  1401 + "icu",
  1402 + "intl",
  1403 + "polyfill",
  1404 + "portable",
  1405 + "shim"
  1406 + ],
  1407 + "time": "2016-05-18 14:26:46"
  1408 + },
  1409 + {
  1410 + "name": "symfony/polyfill-mbstring",
  1411 + "version": "v1.2.0",
  1412 + "source": {
  1413 + "type": "git",
  1414 + "url": "https://github.com/symfony/polyfill-mbstring.git",
  1415 + "reference": "dff51f72b0706335131b00a7f49606168c582594"
  1416 + },
  1417 + "dist": {
  1418 + "type": "zip",
  1419 + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594",
  1420 + "reference": "dff51f72b0706335131b00a7f49606168c582594",
  1421 + "shasum": ""
  1422 + },
  1423 + "require": {
  1424 + "php": ">=5.3.3"
  1425 + },
  1426 + "suggest": {
  1427 + "ext-mbstring": "For best performance"
  1428 + },
  1429 + "type": "library",
  1430 + "extra": {
  1431 + "branch-alias": {
  1432 + "dev-master": "1.2-dev"
  1433 + }
  1434 + },
  1435 + "autoload": {
  1436 + "psr-4": {
  1437 + "Symfony\\Polyfill\\Mbstring\\": ""
  1438 + },
  1439 + "files": [
  1440 + "bootstrap.php"
  1441 + ]
  1442 + },
  1443 + "notification-url": "https://packagist.org/downloads/",
  1444 + "license": [
  1445 + "MIT"
  1446 + ],
  1447 + "authors": [
  1448 + {
  1449 + "name": "Nicolas Grekas",
  1450 + "email": "p@tchwork.com"
  1451 + },
  1452 + {
  1453 + "name": "Symfony Community",
  1454 + "homepage": "https://symfony.com/contributors"
  1455 + }
  1456 + ],
  1457 + "description": "Symfony polyfill for the Mbstring extension",
  1458 + "homepage": "https://symfony.com",
  1459 + "keywords": [
  1460 + "compatibility",
  1461 + "mbstring",
  1462 + "polyfill",
  1463 + "portable",
  1464 + "shim"
  1465 + ],
  1466 + "time": "2016-05-18 14:26:46"
  1467 + },
  1468 + {
  1469 + "name": "symfony/polyfill-php54",
  1470 + "version": "v1.2.0",
  1471 + "source": {
  1472 + "type": "git",
  1473 + "url": "https://github.com/symfony/polyfill-php54.git",
  1474 + "reference": "34d761992f6f2cc6092cc0e5e93f38b53ba5e4f1"
  1475 + },
  1476 + "dist": {
  1477 + "type": "zip",
  1478 + "url": "https://api.github.com/repos/symfony/polyfill-php54/zipball/34d761992f6f2cc6092cc0e5e93f38b53ba5e4f1",
  1479 + "reference": "34d761992f6f2cc6092cc0e5e93f38b53ba5e4f1",
  1480 + "shasum": ""
  1481 + },
  1482 + "require": {
  1483 + "php": ">=5.3.3"
  1484 + },
  1485 + "type": "library",
  1486 + "extra": {
  1487 + "branch-alias": {
  1488 + "dev-master": "1.2-dev"
  1489 + }
  1490 + },
  1491 + "autoload": {
  1492 + "psr-4": {
  1493 + "Symfony\\Polyfill\\Php54\\": ""
  1494 + },
  1495 + "files": [
  1496 + "bootstrap.php"
  1497 + ],
  1498 + "classmap": [
  1499 + "Resources/stubs"
  1500 + ]
  1501 + },
  1502 + "notification-url": "https://packagist.org/downloads/",
  1503 + "license": [
  1504 + "MIT"
  1505 + ],
  1506 + "authors": [
  1507 + {
  1508 + "name": "Nicolas Grekas",
  1509 + "email": "p@tchwork.com"
  1510 + },
  1511 + {
  1512 + "name": "Symfony Community",
  1513 + "homepage": "https://symfony.com/contributors"
  1514 + }
  1515 + ],
  1516 + "description": "Symfony polyfill backporting some PHP 5.4+ features to lower PHP versions",
  1517 + "homepage": "https://symfony.com",
  1518 + "keywords": [
  1519 + "compatibility",
  1520 + "polyfill",
  1521 + "portable",
  1522 + "shim"
  1523 + ],
  1524 + "time": "2016-05-18 14:26:46"
  1525 + },
  1526 + {
  1527 + "name": "symfony/polyfill-php55",
  1528 + "version": "v1.2.0",
  1529 + "source": {
  1530 + "type": "git",
  1531 + "url": "https://github.com/symfony/polyfill-php55.git",
  1532 + "reference": "bf2ff9ad6be1a4772cb873e4eea94d70daa95c6d"
  1533 + },
  1534 + "dist": {
  1535 + "type": "zip",
  1536 + "url": "https://api.github.com/repos/symfony/polyfill-php55/zipball/bf2ff9ad6be1a4772cb873e4eea94d70daa95c6d",
  1537 + "reference": "bf2ff9ad6be1a4772cb873e4eea94d70daa95c6d",
  1538 + "shasum": ""
  1539 + },
  1540 + "require": {
  1541 + "ircmaxell/password-compat": "~1.0",
  1542 + "php": ">=5.3.3"
  1543 + },
  1544 + "type": "library",
  1545 + "extra": {
  1546 + "branch-alias": {
  1547 + "dev-master": "1.2-dev"
  1548 + }
  1549 + },
  1550 + "autoload": {
  1551 + "psr-4": {
  1552 + "Symfony\\Polyfill\\Php55\\": ""
  1553 + },
  1554 + "files": [
  1555 + "bootstrap.php"
  1556 + ]
  1557 + },
  1558 + "notification-url": "https://packagist.org/downloads/",
  1559 + "license": [
  1560 + "MIT"
  1561 + ],
  1562 + "authors": [
  1563 + {
  1564 + "name": "Nicolas Grekas",
  1565 + "email": "p@tchwork.com"
  1566 + },
  1567 + {
  1568 + "name": "Symfony Community",
  1569 + "homepage": "https://symfony.com/contributors"
  1570 + }
  1571 + ],
  1572 + "description": "Symfony polyfill backporting some PHP 5.5+ features to lower PHP versions",
  1573 + "homepage": "https://symfony.com",
  1574 + "keywords": [
  1575 + "compatibility",
  1576 + "polyfill",
  1577 + "portable",
  1578 + "shim"
  1579 + ],
  1580 + "time": "2016-05-18 14:26:46"
  1581 + },
  1582 + {
  1583 + "name": "symfony/polyfill-php56",
  1584 + "version": "v1.2.0",
  1585 + "source": {
  1586 + "type": "git",
  1587 + "url": "https://github.com/symfony/polyfill-php56.git",
  1588 + "reference": "3edf57a8fbf9a927533344cef65ad7e1cf31030a"
  1589 + },
  1590 + "dist": {
  1591 + "type": "zip",
  1592 + "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/3edf57a8fbf9a927533344cef65ad7e1cf31030a",
  1593 + "reference": "3edf57a8fbf9a927533344cef65ad7e1cf31030a",
  1594 + "shasum": ""
  1595 + },
  1596 + "require": {
  1597 + "php": ">=5.3.3",
  1598 + "symfony/polyfill-util": "~1.0"
  1599 + },
  1600 + "type": "library",
  1601 + "extra": {
  1602 + "branch-alias": {
  1603 + "dev-master": "1.2-dev"
  1604 + }
  1605 + },
  1606 + "autoload": {
  1607 + "psr-4": {
  1608 + "Symfony\\Polyfill\\Php56\\": ""
  1609 + },
  1610 + "files": [
  1611 + "bootstrap.php"
  1612 + ]
  1613 + },
  1614 + "notification-url": "https://packagist.org/downloads/",
  1615 + "license": [
  1616 + "MIT"
  1617 + ],
  1618 + "authors": [
  1619 + {
  1620 + "name": "Nicolas Grekas",
  1621 + "email": "p@tchwork.com"
  1622 + },
  1623 + {
  1624 + "name": "Symfony Community",
  1625 + "homepage": "https://symfony.com/contributors"
  1626 + }
  1627 + ],
  1628 + "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions",
  1629 + "homepage": "https://symfony.com",
  1630 + "keywords": [
  1631 + "compatibility",
  1632 + "polyfill",
  1633 + "portable",
  1634 + "shim"
  1635 + ],
  1636 + "time": "2016-05-18 14:26:46"
  1637 + },
  1638 + {
  1639 + "name": "symfony/polyfill-php70",
  1640 + "version": "v1.2.0",
  1641 + "source": {
  1642 + "type": "git",
  1643 + "url": "https://github.com/symfony/polyfill-php70.git",
  1644 + "reference": "a42f4b6b05ed458910f8af4c4e1121b0101b2d85"
  1645 + },
  1646 + "dist": {
  1647 + "type": "zip",
  1648 + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/a42f4b6b05ed458910f8af4c4e1121b0101b2d85",
  1649 + "reference": "a42f4b6b05ed458910f8af4c4e1121b0101b2d85",
  1650 + "shasum": ""
  1651 + },
  1652 + "require": {
  1653 + "paragonie/random_compat": "~1.0|~2.0",
  1654 + "php": ">=5.3.3"
  1655 + },
  1656 + "type": "library",
  1657 + "extra": {
  1658 + "branch-alias": {
  1659 + "dev-master": "1.2-dev"
  1660 + }
  1661 + },
  1662 + "autoload": {
  1663 + "psr-4": {
  1664 + "Symfony\\Polyfill\\Php70\\": ""
  1665 + },
  1666 + "files": [
  1667 + "bootstrap.php"
  1668 + ],
  1669 + "classmap": [
  1670 + "Resources/stubs"
  1671 + ]
  1672 + },
  1673 + "notification-url": "https://packagist.org/downloads/",
  1674 + "license": [
  1675 + "MIT"
  1676 + ],
  1677 + "authors": [
  1678 + {
  1679 + "name": "Nicolas Grekas",
  1680 + "email": "p@tchwork.com"
  1681 + },
  1682 + {
  1683 + "name": "Symfony Community",
  1684 + "homepage": "https://symfony.com/contributors"
  1685 + }
  1686 + ],
  1687 + "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
  1688 + "homepage": "https://symfony.com",
  1689 + "keywords": [
  1690 + "compatibility",
  1691 + "polyfill",
  1692 + "portable",
  1693 + "shim"
  1694 + ],
  1695 + "time": "2016-05-18 14:26:46"
  1696 + },
  1697 + {
  1698 + "name": "symfony/polyfill-util",
  1699 + "version": "v1.2.0",
  1700 + "source": {
  1701 + "type": "git",
  1702 + "url": "https://github.com/symfony/polyfill-util.git",
  1703 + "reference": "ef830ce3d218e622b221d6bfad42c751d974bf99"
  1704 + },
  1705 + "dist": {
  1706 + "type": "zip",
  1707 + "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/ef830ce3d218e622b221d6bfad42c751d974bf99",
  1708 + "reference": "ef830ce3d218e622b221d6bfad42c751d974bf99",
  1709 + "shasum": ""
  1710 + },
  1711 + "require": {
  1712 + "php": ">=5.3.3"
  1713 + },
  1714 + "type": "library",
  1715 + "extra": {
  1716 + "branch-alias": {
  1717 + "dev-master": "1.2-dev"
  1718 + }
  1719 + },
  1720 + "autoload": {
  1721 + "psr-4": {
  1722 + "Symfony\\Polyfill\\Util\\": ""
  1723 + }
  1724 + },
  1725 + "notification-url": "https://packagist.org/downloads/",
  1726 + "license": [
  1727 + "MIT"
  1728 + ],
  1729 + "authors": [
  1730 + {
  1731 + "name": "Nicolas Grekas",
  1732 + "email": "p@tchwork.com"
  1733 + },
  1734 + {
  1735 + "name": "Symfony Community",
  1736 + "homepage": "https://symfony.com/contributors"
  1737 + }
  1738 + ],
  1739 + "description": "Symfony utilities for portability of PHP codes",
  1740 + "homepage": "https://symfony.com",
  1741 + "keywords": [
  1742 + "compat",
  1743 + "compatibility",
  1744 + "polyfill",
  1745 + "shim"
  1746 + ],
  1747 + "time": "2016-05-18 14:26:46"
  1748 + },
  1749 + {
  1750 + "name": "symfony/security-acl",
  1751 + "version": "v2.8.0",
  1752 + "source": {
  1753 + "type": "git",
  1754 + "url": "https://github.com/symfony/security-acl.git",
  1755 + "reference": "4a3f7327ad215242c78f6564ad4ea6d2db1b8347"
  1756 + },
  1757 + "dist": {
  1758 + "type": "zip",
  1759 + "url": "https://api.github.com/repos/symfony/security-acl/zipball/4a3f7327ad215242c78f6564ad4ea6d2db1b8347",
  1760 + "reference": "4a3f7327ad215242c78f6564ad4ea6d2db1b8347",
  1761 + "shasum": ""
  1762 + },
  1763 + "require": {
  1764 + "php": ">=5.3.9",
  1765 + "symfony/security-core": "~2.4|~3.0.0"
  1766 + },
  1767 + "require-dev": {
  1768 + "doctrine/common": "~2.2",
  1769 + "doctrine/dbal": "~2.2",
  1770 + "psr/log": "~1.0",
  1771 + "symfony/phpunit-bridge": "~2.7|~3.0.0"
  1772 + },
  1773 + "suggest": {
  1774 + "doctrine/dbal": "For using the built-in ACL implementation",
  1775 + "symfony/class-loader": "For using the ACL generateSql script",
  1776 + "symfony/finder": "For using the ACL generateSql script"
  1777 + },
  1778 + "type": "library",
  1779 + "extra": {
  1780 + "branch-alias": {
  1781 + "dev-master": "2.8-dev"
  1782 + }
  1783 + },
  1784 + "autoload": {
  1785 + "psr-4": {
  1786 + "Symfony\\Component\\Security\\Acl\\": ""
  1787 + },
  1788 + "exclude-from-classmap": [
  1789 + "/Tests/"
  1790 + ]
  1791 + },
  1792 + "notification-url": "https://packagist.org/downloads/",
  1793 + "license": [
  1794 + "MIT"
  1795 + ],
  1796 + "authors": [
  1797 + {
  1798 + "name": "Fabien Potencier",
  1799 + "email": "fabien@symfony.com"
  1800 + },
  1801 + {
  1802 + "name": "Symfony Community",
  1803 + "homepage": "https://symfony.com/contributors"
  1804 + }
  1805 + ],
  1806 + "description": "Symfony Security Component - ACL (Access Control List)",
  1807 + "homepage": "https://symfony.com",
  1808 + "time": "2015-12-28 09:39:09"
  1809 + },
  1810 + {
  1811 + "name": "symfony/swiftmailer-bundle",
  1812 + "version": "v2.3.11",
  1813 + "source": {
  1814 + "type": "git",
  1815 + "url": "https://github.com/symfony/swiftmailer-bundle.git",
  1816 + "reference": "5e1a90f28213231ceee19c953bbebc5b5b95c690"
  1817 + },
  1818 + "dist": {
  1819 + "type": "zip",
  1820 + "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/5e1a90f28213231ceee19c953bbebc5b5b95c690",
  1821 + "reference": "5e1a90f28213231ceee19c953bbebc5b5b95c690",
  1822 + "shasum": ""
  1823 + },
  1824 + "require": {
  1825 + "php": ">=5.3.2",
  1826 + "swiftmailer/swiftmailer": ">=4.2.0,~5.0",
  1827 + "symfony/config": "~2.3|~3.0",
  1828 + "symfony/dependency-injection": "~2.3|~3.0",
  1829 + "symfony/http-kernel": "~2.3|~3.0",
  1830 + "symfony/yaml": "~2.3|~3.0"
  1831 + },
  1832 + "require-dev": {
  1833 + "symfony/phpunit-bridge": "~2.7|~3.0"
  1834 + },
  1835 + "suggest": {
  1836 + "psr/log": "Allows logging"
  1837 + },
  1838 + "type": "symfony-bundle",
  1839 + "extra": {
  1840 + "branch-alias": {
  1841 + "dev-master": "2.3-dev"
  1842 + }
  1843 + },
  1844 + "autoload": {
  1845 + "psr-4": {
  1846 + "Symfony\\Bundle\\SwiftmailerBundle\\": ""
  1847 + }
  1848 + },
  1849 + "notification-url": "https://packagist.org/downloads/",
  1850 + "license": [
  1851 + "MIT"
  1852 + ],
  1853 + "authors": [
  1854 + {
  1855 + "name": "Symfony Community",
  1856 + "homepage": "http://symfony.com/contributors"
  1857 + },
  1858 + {
  1859 + "name": "Fabien Potencier",
  1860 + "email": "fabien@symfony.com"
  1861 + }
  1862 + ],
  1863 + "description": "Symfony SwiftmailerBundle",
  1864 + "homepage": "http://symfony.com",
  1865 + "time": "2016-01-15 16:41:20"
  1866 + },
  1867 + {
  1868 + "name": "symfony/symfony",
  1869 + "version": "v2.8.7",
  1870 + "source": {
  1871 + "type": "git",
  1872 + "url": "https://github.com/symfony/symfony.git",
  1873 + "reference": "663b2d6202c3149515b39cfe50a174a130acb8e2"
  1874 + },
  1875 + "dist": {
  1876 + "type": "zip",
  1877 + "url": "https://api.github.com/repos/symfony/symfony/zipball/663b2d6202c3149515b39cfe50a174a130acb8e2",
  1878 + "reference": "663b2d6202c3149515b39cfe50a174a130acb8e2",
  1879 + "shasum": ""
  1880 + },
  1881 + "require": {
  1882 + "doctrine/common": "~2.4",
  1883 + "php": ">=5.3.9",
  1884 + "psr/log": "~1.0",
  1885 + "symfony/polyfill-apcu": "~1.1",
  1886 + "symfony/polyfill-intl-icu": "~1.0",
  1887 + "symfony/polyfill-mbstring": "~1.0",
  1888 + "symfony/polyfill-php54": "~1.0",
  1889 + "symfony/polyfill-php55": "~1.0",
  1890 + "symfony/polyfill-php56": "~1.0",
  1891 + "symfony/polyfill-php70": "~1.0",
  1892 + "symfony/polyfill-util": "~1.0",
  1893 + "symfony/security-acl": "~2.7|~3.0.0",
  1894 + "twig/twig": "~1.23|~2.0"
  1895 + },
  1896 + "conflict": {
  1897 + "phpdocumentor/reflection": "<1.0.7"
  1898 + },
  1899 + "replace": {
  1900 + "symfony/asset": "self.version",
  1901 + "symfony/browser-kit": "self.version",
  1902 + "symfony/class-loader": "self.version",
  1903 + "symfony/config": "self.version",
  1904 + "symfony/console": "self.version",
  1905 + "symfony/css-selector": "self.version",
  1906 + "symfony/debug": "self.version",
  1907 + "symfony/debug-bundle": "self.version",
  1908 + "symfony/dependency-injection": "self.version",
  1909 + "symfony/doctrine-bridge": "self.version",
  1910 + "symfony/dom-crawler": "self.version",
  1911 + "symfony/event-dispatcher": "self.version",
  1912 + "symfony/expression-language": "self.version",
  1913 + "symfony/filesystem": "self.version",
  1914 + "symfony/finder": "self.version",
  1915 + "symfony/form": "self.version",
  1916 + "symfony/framework-bundle": "self.version",
  1917 + "symfony/http-foundation": "self.version",
  1918 + "symfony/http-kernel": "self.version",
  1919 + "symfony/intl": "self.version",
  1920 + "symfony/ldap": "self.version",
  1921 + "symfony/locale": "self.version",
  1922 + "symfony/monolog-bridge": "self.version",
  1923 + "symfony/options-resolver": "self.version",
  1924 + "symfony/process": "self.version",
  1925 + "symfony/property-access": "self.version",
  1926 + "symfony/property-info": "self.version",
  1927 + "symfony/proxy-manager-bridge": "self.version",
  1928 + "symfony/routing": "self.version",
  1929 + "symfony/security": "self.version",
  1930 + "symfony/security-bundle": "self.version",
  1931 + "symfony/security-core": "self.version",
  1932 + "symfony/security-csrf": "self.version",
  1933 + "symfony/security-guard": "self.version",
  1934 + "symfony/security-http": "self.version",
  1935 + "symfony/serializer": "self.version",
  1936 + "symfony/stopwatch": "self.version",
  1937 + "symfony/swiftmailer-bridge": "self.version",
  1938 + "symfony/templating": "self.version",
  1939 + "symfony/translation": "self.version",
  1940 + "symfony/twig-bridge": "self.version",
  1941 + "symfony/twig-bundle": "self.version",
  1942 + "symfony/validator": "self.version",
  1943 + "symfony/var-dumper": "self.version",
  1944 + "symfony/web-profiler-bundle": "self.version",
  1945 + "symfony/yaml": "self.version"
  1946 + },
  1947 + "require-dev": {
  1948 + "doctrine/data-fixtures": "1.0.*",
  1949 + "doctrine/dbal": "~2.4",
  1950 + "doctrine/doctrine-bundle": "~1.2",
  1951 + "doctrine/orm": "~2.4,>=2.4.5",
  1952 + "egulias/email-validator": "~1.2",
  1953 + "monolog/monolog": "~1.11",
  1954 + "ocramius/proxy-manager": "~0.4|~1.0|~2.0",
  1955 + "phpdocumentor/reflection": "^1.0.7"
  1956 + },
  1957 + "type": "library",
  1958 + "extra": {
  1959 + "branch-alias": {
  1960 + "dev-master": "2.8-dev"
  1961 + }
  1962 + },
  1963 + "autoload": {
  1964 + "psr-4": {
  1965 + "Symfony\\Bridge\\Doctrine\\": "src/Symfony/Bridge/Doctrine/",
  1966 + "Symfony\\Bridge\\Monolog\\": "src/Symfony/Bridge/Monolog/",
  1967 + "Symfony\\Bridge\\ProxyManager\\": "src/Symfony/Bridge/ProxyManager/",
  1968 + "Symfony\\Bridge\\Swiftmailer\\": "src/Symfony/Bridge/Swiftmailer/",
  1969 + "Symfony\\Bridge\\Twig\\": "src/Symfony/Bridge/Twig/",
  1970 + "Symfony\\Bundle\\": "src/Symfony/Bundle/",
  1971 + "Symfony\\Component\\": "src/Symfony/Component/"
  1972 + },
  1973 + "classmap": [
  1974 + "src/Symfony/Component/Intl/Resources/stubs"
  1975 + ],
  1976 + "exclude-from-classmap": [
  1977 + "**/Tests/"
  1978 + ]
  1979 + },
  1980 + "notification-url": "https://packagist.org/downloads/",
  1981 + "license": [
  1982 + "MIT"
  1983 + ],
  1984 + "authors": [
  1985 + {
  1986 + "name": "Fabien Potencier",
  1987 + "email": "fabien@symfony.com"
  1988 + },
  1989 + {
  1990 + "name": "Symfony Community",
  1991 + "homepage": "https://symfony.com/contributors"
  1992 + }
  1993 + ],
  1994 + "description": "The Symfony PHP framework",
  1995 + "homepage": "https://symfony.com",
  1996 + "keywords": [
  1997 + "framework"
  1998 + ],
  1999 + "time": "2016-06-06 16:05:37"
  2000 + },
  2001 + {
  2002 + "name": "twig/twig",
  2003 + "version": "v1.24.1",
  2004 + "source": {
  2005 + "type": "git",
  2006 + "url": "https://github.com/twigphp/Twig.git",
  2007 + "reference": "3566d311a92aae4deec6e48682dc5a4528c4a512"
  2008 + },
  2009 + "dist": {
  2010 + "type": "zip",
  2011 + "url": "https://api.github.com/repos/twigphp/Twig/zipball/3566d311a92aae4deec6e48682dc5a4528c4a512",
  2012 + "reference": "3566d311a92aae4deec6e48682dc5a4528c4a512",
  2013 + "shasum": ""
  2014 + },
  2015 + "require": {
  2016 + "php": ">=5.2.7"
  2017 + },
  2018 + "require-dev": {
  2019 + "symfony/debug": "~2.7",
  2020 + "symfony/phpunit-bridge": "~2.7"
  2021 + },
  2022 + "type": "library",
  2023 + "extra": {
  2024 + "branch-alias": {
  2025 + "dev-master": "1.24-dev"
  2026 + }
  2027 + },
  2028 + "autoload": {
  2029 + "psr-0": {
  2030 + "Twig_": "lib/"
  2031 + }
  2032 + },
  2033 + "notification-url": "https://packagist.org/downloads/",
  2034 + "license": [
  2035 + "BSD-3-Clause"
  2036 + ],
  2037 + "authors": [
  2038 + {
  2039 + "name": "Fabien Potencier",
  2040 + "email": "fabien@symfony.com",
  2041 + "homepage": "http://fabien.potencier.org",
  2042 + "role": "Lead Developer"
  2043 + },
  2044 + {
  2045 + "name": "Armin Ronacher",
  2046 + "email": "armin.ronacher@active-4.com",
  2047 + "role": "Project Founder"
  2048 + },
  2049 + {
  2050 + "name": "Twig Team",
  2051 + "homepage": "http://twig.sensiolabs.org/contributors",
  2052 + "role": "Contributors"
  2053 + }
  2054 + ],
  2055 + "description": "Twig, the flexible, fast, and secure template language for PHP",
  2056 + "homepage": "http://twig.sensiolabs.org",
  2057 + "keywords": [
  2058 + "templating"
  2059 + ],
  2060 + "time": "2016-05-30 09:11:59"
  2061 + }
  2062 + ],
  2063 + "packages-dev": [
  2064 + {
  2065 + "name": "sensio/generator-bundle",
  2066 + "version": "v3.0.6",
  2067 + "source": {
  2068 + "type": "git",
  2069 + "url": "https://github.com/sensiolabs/SensioGeneratorBundle.git",
  2070 + "reference": "ac91535054d025937d897d78ebb5fc2da5e955a4"
  2071 + },
  2072 + "dist": {
  2073 + "type": "zip",
  2074 + "url": "https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/ac91535054d025937d897d78ebb5fc2da5e955a4",
  2075 + "reference": "ac91535054d025937d897d78ebb5fc2da5e955a4",
  2076 + "shasum": ""
  2077 + },
  2078 + "require": {
  2079 + "symfony/console": "~2.7|~3.0",
  2080 + "symfony/framework-bundle": "~2.7|~3.0",
  2081 + "symfony/process": "~2.7|~3.0",
  2082 + "symfony/yaml": "~2.7|~3.0"
  2083 + },
  2084 + "require-dev": {
  2085 + "doctrine/orm": "~2.4",
  2086 + "symfony/doctrine-bridge": "~2.7|~3.0",
  2087 + "twig/twig": "~1.18"
  2088 + },
  2089 + "type": "symfony-bundle",
  2090 + "extra": {
  2091 + "branch-alias": {
  2092 + "dev-master": "3.0.x-dev"
  2093 + }
  2094 + },
  2095 + "autoload": {
  2096 + "psr-4": {
  2097 + "Sensio\\Bundle\\GeneratorBundle\\": ""
  2098 + },
  2099 + "exclude-from-classmap": [
  2100 + "/Tests/"
  2101 + ]
  2102 + },
  2103 + "notification-url": "https://packagist.org/downloads/",
  2104 + "license": [
  2105 + "MIT"
  2106 + ],
  2107 + "authors": [
  2108 + {
  2109 + "name": "Fabien Potencier",
  2110 + "email": "fabien@symfony.com"
  2111 + }
  2112 + ],
  2113 + "description": "This bundle generates code for you",
  2114 + "time": "2016-02-26 04:36:01"
  2115 + },
  2116 + {
  2117 + "name": "symfony/phpunit-bridge",
  2118 + "version": "v2.8.7",
  2119 + "source": {
  2120 + "type": "git",
  2121 + "url": "https://github.com/symfony/phpunit-bridge.git",
  2122 + "reference": "9d30940765450ccc58bc39f4bda30cc412101b4b"
  2123 + },
  2124 + "dist": {
  2125 + "type": "zip",
  2126 + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/9d30940765450ccc58bc39f4bda30cc412101b4b",
  2127 + "reference": "9d30940765450ccc58bc39f4bda30cc412101b4b",
  2128 + "shasum": ""
  2129 + },
  2130 + "require": {
  2131 + "php": ">=5.3.3"
  2132 + },
  2133 + "suggest": {
  2134 + "symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader"
  2135 + },
  2136 + "type": "symfony-bridge",
  2137 + "extra": {
  2138 + "branch-alias": {
  2139 + "dev-master": "2.8-dev"
  2140 + }
  2141 + },
  2142 + "autoload": {
  2143 + "files": [
  2144 + "bootstrap.php"
  2145 + ],
  2146 + "psr-4": {
  2147 + "Symfony\\Bridge\\PhpUnit\\": ""
  2148 + },
  2149 + "exclude-from-classmap": [
  2150 + "/Tests/"
  2151 + ]
  2152 + },
  2153 + "notification-url": "https://packagist.org/downloads/",
  2154 + "license": [
  2155 + "MIT"
  2156 + ],
  2157 + "authors": [
  2158 + {
  2159 + "name": "Nicolas Grekas",
  2160 + "email": "p@tchwork.com"
  2161 + },
  2162 + {
  2163 + "name": "Symfony Community",
  2164 + "homepage": "https://symfony.com/contributors"
  2165 + }
  2166 + ],
  2167 + "description": "Symfony PHPUnit Bridge",
  2168 + "homepage": "https://symfony.com",
  2169 + "time": "2016-04-05 16:36:54"
  2170 + }
  2171 + ],
  2172 + "aliases": [
  2173 +
  2174 + ],
  2175 + "minimum-stability": "stable",
  2176 + "stability-flags": [
  2177 +
  2178 + ],
  2179 + "prefer-stable": false,
  2180 + "prefer-lowest": false,
  2181 + "platform": {
  2182 + "php": ">=5.3.9"
  2183 + },
  2184 + "platform-dev": [
  2185 +
  2186 + ],
  2187 + "platform-overrides": {
  2188 + "php": "5.3.9"
  2189 + }
  2190 +}
... ...
src/.htaccess
... ... @@ -0,0 +1,7 @@
  1 +<IfModule mod_authz_core.c>
  2 + Require all denied
  3 +</IfModule>
  4 +<IfModule !mod_authz_core.c>
  5 + Order deny,allow
  6 + Deny from all
  7 +</IfModule>
... ...
src/AppBundle/AppBundle.php
... ... @@ -0,0 +1,9 @@
  1 +<?php
  2 +
  3 +namespace AppBundle;
  4 +
  5 +use Symfony\Component\HttpKernel\Bundle\Bundle;
  6 +
  7 +class AppBundle extends Bundle
  8 +{
  9 +}
... ...
src/AppBundle/Controller/DefaultController.php
... ... @@ -0,0 +1,21 @@
  1 +<?php
  2 +
  3 +namespace AppBundle\Controller;
  4 +
  5 +use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  6 +use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  7 +use Symfony\Component\HttpFoundation\Request;
  8 +
  9 +class DefaultController extends Controller
  10 +{
  11 + /**
  12 + * @Route("/", name="homepage")
  13 + */
  14 + public function indexAction(Request $request)
  15 + {
  16 + // replace this example code with whatever you need
  17 + return $this->render('default/index.html.twig', array(
  18 + 'base_dir' => realpath($this->container->getParameter('kernel.root_dir').'/..'),
  19 + ));
  20 + }
  21 +}
... ...
src/AppBundle/Controller/RegistrationController.php
... ... @@ -0,0 +1,55 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 09:08 AM
  7 + */
  8 +
  9 +namespace AppBundle\Controller;
  10 +
  11 +use AppBundle\Form\UserType;
  12 +use AppBundle\Entity\Usuarios;
  13 +use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  14 +use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  15 +use Symfony\Component\HttpFoundation\Request;
  16 +
  17 +class RegistrationController extends Controller
  18 +{
  19 + /**
  20 + * @Route("/register", name="user_registration")
  21 + */
  22 + public function registerAction(Request $request)
  23 + {
  24 + // 1) build the form
  25 + $user = new Usuarios();
  26 + $form = $this->createForm(UserType::class, $user);
  27 +
  28 + // 2) handle the submit (will only happen on POST)
  29 + $form->handleRequest($request);
  30 + var_dump($form->isValid());
  31 + if ($form->isSubmitted() && $form->isValid()) {
  32 +
  33 + // 3) Encode the password (you could also do this via Doctrine listener)
  34 + $password = $this->get('security.password_encoder')
  35 + ->encodePassword($user, $user->getPlainPassword());
  36 + $user->setPassword($password);
  37 +
  38 +
  39 + // 4) save the User!
  40 + $em = $this->getDoctrine()->getManager();
  41 + $em->persist($user);
  42 + $em->flush();
  43 +
  44 + // ... do any other work - like sending them an email, etc
  45 + // maybe set a "flash" success message for the user
  46 +
  47 + return $this->redirectToRoute('homepage');
  48 + }
  49 +
  50 + return $this->render(
  51 + 'registration/register.html.twig',
  52 + array('form' => $form->createView())
  53 + );
  54 + }
  55 +}
0 56 \ No newline at end of file
... ...
src/AppBundle/Controller/RoleController.php
... ... @@ -0,0 +1,140 @@
  1 +<?php
  2 +
  3 +namespace AppBundle\Controller;
  4 +
  5 +use Symfony\Component\HttpFoundation\Request;
  6 +use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  7 +use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
  8 +use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  9 +use AppBundle\Entity\Role;
  10 +use AppBundle\Form\RoleType;
  11 +
  12 +/**
  13 + * Role controller.
  14 + *
  15 + * @Route("/admin/role")
  16 + */
  17 +class RoleController extends Controller
  18 +{
  19 + /**
  20 + * Lists all Role entities.
  21 + *
  22 + * @Route("/", name="role_index")
  23 + * @Method("GET")
  24 + */
  25 + public function indexAction()
  26 + {
  27 + $em = $this->getDoctrine()->getManager();
  28 +
  29 + $roles = $em->getRepository('AppBundle:Role')->findAll();
  30 +
  31 + return $this->render('role/index.html.twig', array(
  32 + 'roles' => $roles,
  33 + ));
  34 + }
  35 +
  36 + /**
  37 + * Creates a new Role entity.
  38 + *
  39 + * @Route("/new", name="role_new")
  40 + * @Method({"GET", "POST"})
  41 + */
  42 + public function newAction(Request $request)
  43 + {
  44 + $role = new Role();
  45 + $form = $this->createForm('AppBundle\Form\RoleType', $role);
  46 + $form->handleRequest($request);
  47 +
  48 + if ($form->isSubmitted() && $form->isValid()) {
  49 + $em = $this->getDoctrine()->getManager();
  50 + $em->persist($role);
  51 + $em->flush();
  52 +
  53 + return $this->redirectToRoute('role_show', array('id' => $role->getId()));
  54 + }
  55 +
  56 + return $this->render('role/new.html.twig', array(
  57 + 'role' => $role,
  58 + 'form' => $form->createView(),
  59 + ));
  60 + }
  61 +
  62 + /**
  63 + * Finds and displays a Role entity.
  64 + *
  65 + * @Route("/{id}", name="role_show")
  66 + * @Method("GET")
  67 + */
  68 + public function showAction(Role $role)
  69 + {
  70 + $deleteForm = $this->createDeleteForm($role);
  71 +
  72 + return $this->render('role/show.html.twig', array(
  73 + 'role' => $role,
  74 + 'delete_form' => $deleteForm->createView(),
  75 + ));
  76 + }
  77 +
  78 + /**
  79 + * Displays a form to edit an existing Role entity.
  80 + *
  81 + * @Route("/{id}/edit", name="role_edit")
  82 + * @Method({"GET", "POST"})
  83 + */
  84 + public function editAction(Request $request, Role $role)
  85 + {
  86 + $deleteForm = $this->createDeleteForm($role);
  87 + $editForm = $this->createForm('AppBundle\Form\RoleType', $role);
  88 + $editForm->handleRequest($request);
  89 +
  90 + if ($editForm->isSubmitted() && $editForm->isValid()) {
  91 + $em = $this->getDoctrine()->getManager();
  92 + $em->persist($role);
  93 + $em->flush();
  94 +
  95 + return $this->redirectToRoute('role_edit', array('id' => $role->getId()));
  96 + }
  97 +
  98 + return $this->render('role/edit.html.twig', array(
  99 + 'role' => $role,
  100 + 'edit_form' => $editForm->createView(),
  101 + 'delete_form' => $deleteForm->createView(),
  102 + ));
  103 + }
  104 +
  105 + /**
  106 + * Deletes a Role entity.
  107 + *
  108 + * @Route("/{id}", name="role_delete")
  109 + * @Method("DELETE")
  110 + */
  111 + public function deleteAction(Request $request, Role $role)
  112 + {
  113 + $form = $this->createDeleteForm($role);
  114 + $form->handleRequest($request);
  115 +
  116 + if ($form->isSubmitted() && $form->isValid()) {
  117 + $em = $this->getDoctrine()->getManager();
  118 + $em->remove($role);
  119 + $em->flush();
  120 + }
  121 +
  122 + return $this->redirectToRoute('role_index');
  123 + }
  124 +
  125 + /**
  126 + * Creates a form to delete a Role entity.
  127 + *
  128 + * @param Role $role The Role entity
  129 + *
  130 + * @return \Symfony\Component\Form\Form The form
  131 + */
  132 + private function createDeleteForm(Role $role)
  133 + {
  134 + return $this->createFormBuilder()
  135 + ->setAction($this->generateUrl('role_delete', array('id' => $role->getId())))
  136 + ->setMethod('DELETE')
  137 + ->getForm()
  138 + ;
  139 + }
  140 +}
... ...
src/AppBundle/Controller/SecurityController.php
... ... @@ -0,0 +1,40 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 10:02 AM
  7 + */
  8 +
  9 +// src/AppBundle/Controller/SecurityController.php
  10 +namespace AppBundle\Controller;
  11 +
  12 +use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  13 +use Symfony\Component\HttpFoundation\Request;
  14 +use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  15 +
  16 +class SecurityController extends Controller
  17 +{
  18 + /**
  19 + * @Route("/login", name="login")
  20 + */
  21 + public function loginAction(Request $request)
  22 + {
  23 + $authenticationUtils = $this->get('security.authentication_utils');
  24 +
  25 + // get the login error if there is one
  26 + $error = $authenticationUtils->getLastAuthenticationError();
  27 +
  28 + // last username entered by the user
  29 + $lastUsername = $authenticationUtils->getLastUsername();
  30 +
  31 + return $this->render(
  32 + 'security/login.html.twig',
  33 + array(
  34 + // last username entered by the user
  35 + 'last_username' => $lastUsername,
  36 + 'error' => $error,
  37 + )
  38 + );
  39 + }
  40 +}
0 41 \ No newline at end of file
... ...
src/AppBundle/Controller/UsuariosController.php
... ... @@ -0,0 +1,143 @@
  1 +<?php
  2 +
  3 +namespace AppBundle\Controller;
  4 +
  5 +use Symfony\Component\HttpFoundation\Request;
  6 +use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  7 +use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
  8 +use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
  9 +use AppBundle\Entity\Usuarios;
  10 +use AppBundle\Form\UsuariosType;
  11 +
  12 +/**
  13 + * Usuarios controller.
  14 + *
  15 + * @Route("/admin/usuarios")
  16 + */
  17 +class UsuariosController extends Controller
  18 +{
  19 + /**
  20 + * Lists all Usuarios entities.
  21 + *
  22 + * @Route("/", name="admin_usuarios_index")
  23 + * @Method("GET")
  24 + */
  25 + public function indexAction()
  26 + {
  27 + $em = $this->getDoctrine()->getManager();
  28 +
  29 + $usuarios = $em->getRepository('AppBundle:Usuarios')->findAll();
  30 +
  31 + return $this->render('usuarios/index.html.twig', array(
  32 + 'usuarios' => $usuarios,
  33 + ));
  34 + }
  35 +
  36 + /**
  37 + * Creates a new Usuarios entity.
  38 + *
  39 + * @Route("/new", name="admin_usuarios_new")
  40 + * @Method({"GET", "POST"})
  41 + */
  42 + public function newAction(Request $request)
  43 + {
  44 + $usuario = new Usuarios();
  45 + $form = $this->createForm('AppBundle\Form\UsuariosType', $usuario);
  46 + $form->handleRequest($request);
  47 +
  48 + if ($form->isSubmitted() && $form->isValid()) {
  49 + $password = $this->get('security.password_encoder')
  50 + ->encodePassword($usuario, $usuario->getPlainPassword());
  51 + $usuario->setPassword($password);
  52 + $em = $this->getDoctrine()->getManager();
  53 + $em->persist($usuario);
  54 + $em->flush();
  55 +
  56 + return $this->redirectToRoute('admin_usuarios_show', array('id' => $usuario->getId()));
  57 + }
  58 +
  59 + return $this->render('usuarios/new.html.twig', array(
  60 + 'usuario' => $usuario,
  61 + 'form' => $form->createView(),
  62 + ));
  63 + }
  64 +
  65 + /**
  66 + * Finds and displays a Usuarios entity.
  67 + *
  68 + * @Route("/{id}", name="admin_usuarios_show")
  69 + * @Method("GET")
  70 + */
  71 + public function showAction(Usuarios $usuario)
  72 + {
  73 + $deleteForm = $this->createDeleteForm($usuario);
  74 +
  75 + return $this->render('usuarios/show.html.twig', array(
  76 + 'usuario' => $usuario,
  77 + 'delete_form' => $deleteForm->createView(),
  78 + ));
  79 + }
  80 +
  81 + /**
  82 + * Displays a form to edit an existing Usuarios entity.
  83 + *
  84 + * @Route("/{id}/edit", name="admin_usuarios_edit")
  85 + * @Method({"GET", "POST"})
  86 + */
  87 + public function editAction(Request $request, Usuarios $usuario)
  88 + {
  89 + $deleteForm = $this->createDeleteForm($usuario);
  90 + $editForm = $this->createForm('AppBundle\Form\UsuariosType', $usuario);
  91 + $editForm->handleRequest($request);
  92 +
  93 + if ($editForm->isSubmitted() && $editForm->isValid()) {
  94 + $em = $this->getDoctrine()->getManager();
  95 + $em->persist($usuario);
  96 + $em->flush();
  97 +
  98 + return $this->redirectToRoute('admin_usuarios_edit', array('id' => $usuario->getId()));
  99 + }
  100 +
  101 + return $this->render('usuarios/edit.html.twig', array(
  102 + 'usuario' => $usuario,
  103 + 'edit_form' => $editForm->createView(),
  104 + 'delete_form' => $deleteForm->createView(),
  105 + ));
  106 + }
  107 +
  108 + /**
  109 + * Deletes a Usuarios entity.
  110 + *
  111 + * @Route("/{id}", name="admin_usuarios_delete")
  112 + * @Method("DELETE")
  113 + */
  114 + public function deleteAction(Request $request, Usuarios $usuario)
  115 + {
  116 + $form = $this->createDeleteForm($usuario);
  117 + $form->handleRequest($request);
  118 +
  119 + if ($form->isSubmitted() && $form->isValid()) {
  120 + $em = $this->getDoctrine()->getManager();
  121 + $em->remove($usuario);
  122 + $em->flush();
  123 + }
  124 +
  125 + return $this->redirectToRoute('admin_usuarios_index');
  126 + }
  127 +
  128 + /**
  129 + * Creates a form to delete a Usuarios entity.
  130 + *
  131 + * @param Usuarios $usuario The Usuarios entity
  132 + *
  133 + * @return \Symfony\Component\Form\Form The form
  134 + */
  135 + private function createDeleteForm(Usuarios $usuario)
  136 + {
  137 + return $this->createFormBuilder()
  138 + ->setAction($this->generateUrl('admin_usuarios_delete', array('id' => $usuario->getId())))
  139 + ->setMethod('DELETE')
  140 + ->getForm()
  141 + ;
  142 + }
  143 +}
... ...
src/AppBundle/Entity/AreaPersona.php
... ... @@ -0,0 +1,87 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:07 AM
  7 + */
  8 +
  9 +
  10 +
  11 +namespace AppBundle\Entity;
  12 +
  13 +use Doctrine\ORM\Mapping as ORM;
  14 +
  15 +/**
  16 + * AreaPersona
  17 + *
  18 + * @ORM\Table(name="area_persona", uniqueConstraints={@ORM\UniqueConstraint(name="area_persona_nombre_key", columns={"nombre"})})
  19 + * @ORM\Entity
  20 + */
  21 +class AreaPersona
  22 +{
  23 + /**
  24 + * @var string
  25 + *
  26 + * @ORM\Column(name="nombre", type="string", length=80, nullable=false, options={"comment" = "identificador del area de desenvolvimiento de persona"})
  27 + */
  28 + private $nombre;
  29 +
  30 + /**
  31 + * @var integer
  32 + *
  33 + * @ORM\Column(name="id", type="integer",nullable=false, options={"comment" = "nombre del area donde hace vida la persona"})
  34 + * @ORM\Id
  35 + * @ORM\GeneratedValue(strategy="IDENTITY")
  36 + * @ORM\SequenceGenerator(sequenceName="area_persona_id_seq", allocationSize=1, initialValue=1)
  37 + */
  38 + private $id;
  39 +
  40 +
  41 +
  42 + /**
  43 + * Set nombre
  44 + *
  45 + * @param string $nombre
  46 + * @return AreaPersona
  47 + */
  48 + public function setNombre($nombre)
  49 + {
  50 + $this->nombre = $nombre;
  51 +
  52 + return $this;
  53 + }
  54 +
  55 + /**
  56 + * Get nombre
  57 + *
  58 + * @return string
  59 + */
  60 + public function getNombre()
  61 + {
  62 + return $this->nombre;
  63 + }
  64 +
  65 + /**
  66 + * Get id
  67 + *
  68 + * @return integer
  69 + */
  70 + public function getId()
  71 + {
  72 + return $this->id;
  73 + }
  74 +
  75 +
  76 + /**
  77 + * Get nombre
  78 + *
  79 + * @return string
  80 + */
  81 + public function __toString()
  82 + {
  83 + return $this->nombre;
  84 + }
  85 +
  86 +
  87 +}
0 88 \ No newline at end of file
... ...
src/AppBundle/Entity/DocumentoIdentidad.php
... ... @@ -0,0 +1,115 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:05 AM
  7 + */
  8 +
  9 +
  10 +namespace AppBundle\Entity;
  11 +
  12 +use Doctrine\ORM\Mapping as ORM;
  13 +
  14 +/**
  15 + * DocumentoIdentidad
  16 + *
  17 + * @ORM\Table(name="documento_identidad", uniqueConstraints={@ORM\UniqueConstraint(name="uq_documento_identidad", columns={"nombre", "abreviacion"})})
  18 + * @ORM\Entity
  19 + */
  20 +class DocumentoIdentidad
  21 +{
  22 + /**
  23 + * @var string
  24 + *
  25 + * @ORM\Column(name="nombre", type="string", length=20, nullable=false, options={"comment" = "nombre del documento de identidad"} )
  26 + */
  27 + private $nombre;
  28 +
  29 + /**
  30 + * @var string
  31 + *
  32 + * @ORM\Column(name="abreviacion", type="string", length=2, nullable=false, options={"comment" = "abreviatura del documento de identdad de la persona"})
  33 + */
  34 + private $abreviacion;
  35 +
  36 + /**
  37 + * @var integer
  38 + *
  39 + * @ORM\Column(name="id", type="integer", nullable=false, options={"comment" = "identificador del tipo de documento"})
  40 + * @ORM\Id
  41 + * @ORM\GeneratedValue(strategy="IDENTITY")
  42 + * @ORM\SequenceGenerator(sequenceName="documento_identidad_id_seq", allocationSize=1, initialValue=1)
  43 + */
  44 + private $id;
  45 +
  46 +
  47 +
  48 + /**
  49 + * Set nombre
  50 + *
  51 + * @param string $nombre
  52 + * @return DocumentoIdentidad
  53 + */
  54 + public function setNombre($nombre)
  55 + {
  56 + $this->nombre = $nombre;
  57 +
  58 + return $this;
  59 + }
  60 +
  61 + /**
  62 + * Get nombre
  63 + *
  64 + * @return string
  65 + */
  66 + public function getNombre()
  67 + {
  68 + return $this->nombre;
  69 + }
  70 +
  71 + /**
  72 + * Set abreviacion
  73 + *
  74 + * @param string $abreviacion
  75 + * @return DocumentoIdentidad
  76 + */
  77 + public function setAbreviacion($abreviacion)
  78 + {
  79 + $this->abreviacion = $abreviacion;
  80 +
  81 + return $this;
  82 + }
  83 +
  84 + /**
  85 + * Get abreviacion
  86 + *
  87 + * @return string
  88 + */
  89 + public function getAbreviacion()
  90 + {
  91 + return $this->abreviacion;
  92 + }
  93 +
  94 + /**
  95 + * Get id
  96 + *
  97 + * @return integer
  98 + */
  99 + public function getId()
  100 + {
  101 + return $this->id;
  102 + }
  103 +
  104 +
  105 + /**
  106 + * Get nombre
  107 + *
  108 + * @return string
  109 + */
  110 + public function __toString()
  111 + {
  112 + return $this->nombre;
  113 + }
  114 +
  115 +}
0 116 \ No newline at end of file
... ...
src/AppBundle/Entity/Eje.php
... ... @@ -0,0 +1,103 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:43 AM
  7 + */
  8 +
  9 +
  10 +namespace AppBundle\Entity;
  11 +
  12 +use Doctrine\ORM\Mapping as ORM;
  13 +
  14 +/**
  15 + * Eje
  16 + *
  17 + * @ORM\Table(name="eje", uniqueConstraints={@ORM\UniqueConstraint(name="uq_eje", columns={"codigo", "nombre"})})
  18 + * @ORM\Entity
  19 + */
  20 +class Eje
  21 +{
  22 + /**
  23 + * @var string
  24 + *
  25 + * @ORM\Column(name="nombre", type="string", length=50, nullable=false, options={"comment" = "Nombre del eje (Generalmente el nombre de un estado)"})
  26 + */
  27 + private $nombre;
  28 +
  29 + /**
  30 + * @var string
  31 + *
  32 + * @ORM\Column(name="codigo", type="decimal", precision=2, scale=0, nullable=false, options={"comment" = "Codigo formado por la union de los codigos de cada estado que compone al eje"})
  33 + */
  34 + private $codigo;
  35 +
  36 + /**
  37 + * @var integer
  38 + *
  39 + * @ORM\Column(name="id", type="integer", nullable=false , options={"comment" = "Identificador de registro"})
  40 + * @ORM\Id
  41 + * @ORM\GeneratedValue(strategy="IDENTITY")
  42 + * @ORM\SequenceGenerator(sequenceName="eje_id_seq", allocationSize=1, initialValue=1)
  43 + */
  44 + private $id;
  45 +
  46 +
  47 +
  48 + /**
  49 + * Set nombre
  50 + *
  51 + * @param string $nombre
  52 + * @return Eje
  53 + */
  54 + public function setNombre($nombre)
  55 + {
  56 + $this->nombre = $nombre;
  57 +
  58 + return $this;
  59 + }
  60 +
  61 + /**
  62 + * Get nombre
  63 + *
  64 + * @return string
  65 + */
  66 + public function getNombre()
  67 + {
  68 + return $this->nombre;
  69 + }
  70 +
  71 + /**
  72 + * Set codigo
  73 + *
  74 + * @param string $codigo
  75 + * @return Eje
  76 + */
  77 + public function setCodigo($codigo)
  78 + {
  79 + $this->codigo = $codigo;
  80 +
  81 + return $this;
  82 + }
  83 +
  84 + /**
  85 + * Get codigo
  86 + *
  87 + * @return string
  88 + */
  89 + public function getCodigo()
  90 + {
  91 + return $this->codigo;
  92 + }
  93 +
  94 + /**
  95 + * Get id
  96 + *
  97 + * @return integer
  98 + */
  99 + public function getId()
  100 + {
  101 + return $this->id;
  102 + }
  103 +}
0 104 \ No newline at end of file
... ...
src/AppBundle/Entity/EjeParroquia.php
... ... @@ -0,0 +1,109 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:41 AM
  7 + */
  8 +
  9 +
  10 +namespace AppBundle\Entity;
  11 +
  12 +use Doctrine\ORM\Mapping as ORM;
  13 +
  14 +/**
  15 + * EjeParroquia
  16 + *
  17 + * @ORM\Table(name="eje_parroquia", uniqueConstraints={@ORM\UniqueConstraint(name="i_eje_parroquia", columns={"id_eje", "id_parroquia"})}, indexes={@ORM\Index(name="fki_id_parroquia", columns={"id_parroquia"}), @ORM\Index(name="fki_id_eje", columns={"id_eje"})})
  18 + * @ORM\Entity
  19 + */
  20 +class EjeParroquia
  21 +{
  22 + /**
  23 + * @var integer
  24 + *
  25 + * @ORM\Column(name="id", type="integer", nullable=false , options={"comment" = "identificador del eje en una parroquia y viceversa"})
  26 + * @ORM\Id
  27 + * @ORM\GeneratedValue(strategy="IDENTITY")
  28 + * @ORM\SequenceGenerator(sequenceName="eje_parroquia_id_seq", allocationSize=1, initialValue=1)
  29 + */
  30 + private $id;
  31 +
  32 + /**
  33 + * @var \AppBundle\Entity\Parroquia
  34 + *
  35 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Parroquia")
  36 + * @ORM\JoinColumns({
  37 + * @ORM\JoinColumn(name="id_parroquia", referencedColumnName="id", nullable=false)
  38 + * })
  39 + */
  40 + private $idParroquia;
  41 +
  42 + /**
  43 + * @var \AppBundle\Entity\Eje
  44 + *
  45 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Eje")
  46 + * @ORM\JoinColumns({
  47 + * @ORM\JoinColumn(name="id_eje", referencedColumnName="id", nullable=false)
  48 + * })
  49 + */
  50 + private $idEje;
  51 +
  52 +
  53 +
  54 + /**
  55 + * Get id
  56 + *
  57 + * @return integer
  58 + */
  59 + public function getId()
  60 + {
  61 + return $this->id;
  62 + }
  63 +
  64 + /**
  65 + * Set idParroquia
  66 + *
  67 + * @param \AppBundle\Entity\Parroquia $idParroquia
  68 + * @return EjeParroquia
  69 + */
  70 + public function setIdParroquia(\AppBundle\Entity\Parroquia $idParroquia = null)
  71 + {
  72 + $this->idParroquia = $idParroquia;
  73 +
  74 + return $this;
  75 + }
  76 +
  77 + /**
  78 + * Get idParroquia
  79 + *
  80 + * @return \AppBundle\Entity\Parroquia
  81 + */
  82 + public function getIdParroquia()
  83 + {
  84 + return $this->idParroquia;
  85 + }
  86 +
  87 + /**
  88 + * Set idEje
  89 + *
  90 + * @param \AppBundle\Entity\Eje $idEje
  91 + * @return EjeParroquia
  92 + */
  93 + public function setIdEje(\AppBundle\Entity\Eje $idEje = null)
  94 + {
  95 + $this->idEje = $idEje;
  96 +
  97 + return $this;
  98 + }
  99 +
  100 + /**
  101 + * Get idEje
  102 + *
  103 + * @return \AppBundle\Entity\Eje
  104 + */
  105 + public function getIdEje()
  106 + {
  107 + return $this->idEje;
  108 + }
  109 +}
0 110 \ No newline at end of file
... ...
src/AppBundle/Entity/Estado.php
... ... @@ -0,0 +1,145 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:45 AM
  7 + */
  8 +
  9 +
  10 +namespace AppBundle\Entity;
  11 +
  12 +use Doctrine\ORM\Mapping as ORM;
  13 +
  14 +/**
  15 + * Estado
  16 + *
  17 + * @ORM\Table(name="estado", uniqueConstraints={@ORM\UniqueConstraint(name="uq_estado", columns={"capital", "codigo", "nombre"})})
  18 + * @ORM\Entity
  19 + */
  20 +class Estado
  21 +{
  22 + /**
  23 + * @var string
  24 + *
  25 + * @ORM\Column(name="nombre", type="string", length=50, nullable=false, options={"comment" = "nombre del estado"})
  26 + */
  27 + private $nombre;
  28 +
  29 + /**
  30 + * @var string
  31 + *
  32 + * @ORM\Column(name="capital", type="string", length=50, nullable=false, options={"comment" = "Ciudad capital del estado"})
  33 + */
  34 + private $capital;
  35 +
  36 + /**
  37 + * @var string
  38 + *
  39 + * @ORM\Column(name="codigo", type="decimal", precision=3, scale=0, nullable=false, options={"comment" = "codigo formado por la union del codigo de cada municipio que lo compone"})
  40 + */
  41 + private $codigo;
  42 +
  43 + /**
  44 + * @var integer
  45 + *
  46 + * @ORM\Column(name="id", type="integer", nullable=false, options={"comment" = "identificador del estado"})
  47 + * @ORM\Id
  48 + * @ORM\GeneratedValue(strategy="IDENTITY")
  49 + * @ORM\SequenceGenerator(sequenceName="estado_id_seq", allocationSize=1, initialValue=1)
  50 + */
  51 + private $id;
  52 +
  53 +
  54 +
  55 + /**
  56 + * Set nombre
  57 + *
  58 + * @param string $nombre
  59 + * @return Estado
  60 + */
  61 + public function setNombre($nombre)
  62 + {
  63 + $this->nombre = $nombre;
  64 +
  65 + return $this;
  66 + }
  67 +
  68 + /**
  69 + * Get nombre
  70 + *
  71 + * @return string
  72 + */
  73 + public function getNombre()
  74 + {
  75 + return $this->nombre;
  76 + }
  77 +
  78 + /**
  79 + * Set capital
  80 + *
  81 + * @param string $capital
  82 + * @return Estado
  83 + */
  84 + public function setCapital($capital)
  85 + {
  86 + $this->capital = $capital;
  87 +
  88 + return $this;
  89 + }
  90 +
  91 + /**
  92 + * Get capital
  93 + *
  94 + * @return string
  95 + */
  96 + public function getCapital()
  97 + {
  98 + return $this->capital;
  99 + }
  100 +
  101 + /**
  102 + * Set codigo
  103 + *
  104 + * @param string $codigo
  105 + * @return Estado
  106 + */
  107 + public function setCodigo($codigo)
  108 + {
  109 + $this->codigo = $codigo;
  110 +
  111 + return $this;
  112 + }
  113 +
  114 + /**
  115 + * Get codigo
  116 + *
  117 + * @return string
  118 + */
  119 + public function getCodigo()
  120 + {
  121 + return $this->codigo;
  122 + }
  123 +
  124 + /**
  125 + * Get id
  126 + *
  127 + * @return integer
  128 + */
  129 + public function getId()
  130 + {
  131 + return $this->id;
  132 + }
  133 +
  134 + /**
  135 + * Get nombre
  136 + *
  137 + * @return string
  138 + */
  139 + public function __toString()
  140 + {
  141 + return $this->nombre;
  142 + }
  143 +
  144 +
  145 +}
0 146 \ No newline at end of file
... ...
src/AppBundle/Entity/EstadoCivil.php
... ... @@ -0,0 +1,84 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:03 AM
  7 + */
  8 +
  9 +
  10 +namespace AppBundle\Entity;
  11 +
  12 +use Doctrine\ORM\Mapping as ORM;
  13 +
  14 +/**
  15 + * EstadoCivil
  16 + *
  17 + * @ORM\Table(name="estado_civil", uniqueConstraints={@ORM\UniqueConstraint(name="uq_estado_civil", columns={"nombre"})})
  18 + * @ORM\Entity
  19 + */
  20 +class EstadoCivil
  21 +{
  22 + /**
  23 + * @var string
  24 + *
  25 + * @ORM\Column(name="nombre", type="string", length=30, nullable=false, options={"comment" = "Nombre del estado civil"})
  26 + */
  27 + private $nombre;
  28 +
  29 + /**
  30 + * @var integer
  31 + *
  32 + * @ORM\Column(name="id", type="integer", nullable=false, options={"comment" = "Identificador del estado civil"})
  33 + * @ORM\Id
  34 + * @ORM\GeneratedValue(strategy="IDENTITY")
  35 + * @ORM\SequenceGenerator(sequenceName="estado_civil_id_seq", allocationSize=1, initialValue=1)
  36 + */
  37 + private $id;
  38 +
  39 +
  40 +
  41 + /**
  42 + * Set nombre
  43 + *
  44 + * @param string $nombre
  45 + * @return EstadoCivil
  46 + */
  47 + public function setNombre($nombre)
  48 + {
  49 + $this->nombre = $nombre;
  50 +
  51 + return $this;
  52 + }
  53 +
  54 + /**
  55 + * Get nombre
  56 + *
  57 + * @return string
  58 + */
  59 + public function getNombre()
  60 + {
  61 + return $this->nombre;
  62 + }
  63 +
  64 + /**
  65 + * Get id
  66 + *
  67 + * @return integer
  68 + */
  69 + public function getId()
  70 + {
  71 + return $this->id;
  72 + }
  73 +
  74 + /**
  75 + * Get nombre
  76 + *
  77 + * @return string
  78 + */
  79 + public function __toString()
  80 + {
  81 + return $this->nombre;
  82 + }
  83 +
  84 +}
0 85 \ No newline at end of file
... ...
src/AppBundle/Entity/Estatus.php
... ... @@ -0,0 +1,103 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:12 AM
  7 + */
  8 +
  9 +
  10 +namespace AppBundle\Entity;
  11 +
  12 +use Doctrine\ORM\Mapping as ORM;
  13 +
  14 +/**
  15 + * Estatus
  16 + *
  17 + * @ORM\Table(name="estatus", uniqueConstraints={@ORM\UniqueConstraint(name="uq_estatus", columns={"nombre"})})
  18 + * @ORM\Entity
  19 + */
  20 +class Estatus
  21 +{
  22 + /**
  23 + * @var string
  24 + *
  25 + * @ORM\Column(name="nombre", type="string", length=20, nullable=false, options={"comment" = "Nombre del estatus"})
  26 + */
  27 + private $nombre;
  28 +
  29 + /**
  30 + * @var string
  31 + *
  32 + * @ORM\Column(name="descripcion", type="string", length=50, nullable=false, options={"comment" = "Descripcion o significado del estatus"})
  33 + */
  34 + private $descripcion;
  35 +
  36 + /**
  37 + * @var integer
  38 + *
  39 + * @ORM\Column(name="id", type="integer", nullable=false, options={"comment" = "Identificador del estatus"})
  40 + * @ORM\Id
  41 + * @ORM\GeneratedValue(strategy="IDENTITY")
  42 + * @ORM\SequenceGenerator(sequenceName="estatus_id_seq", allocationSize=1, initialValue=1)
  43 + */
  44 + private $id;
  45 +
  46 +
  47 +
  48 + /**
  49 + * Set nombre
  50 + *
  51 + * @param string $nombre
  52 + * @return Estatus
  53 + */
  54 + public function setNombre($nombre)
  55 + {
  56 + $this->nombre = $nombre;
  57 +
  58 + return $this;
  59 + }
  60 +
  61 + /**
  62 + * Get nombre
  63 + *
  64 + * @return string
  65 + */
  66 + public function getNombre()
  67 + {
  68 + return $this->nombre;
  69 + }
  70 +
  71 + /**
  72 + * Set descripcion
  73 + *
  74 + * @param string $descripcion
  75 + * @return Estatus
  76 + */
  77 + public function setDescripcion($descripcion)
  78 + {
  79 + $this->descripcion = $descripcion;
  80 +
  81 + return $this;
  82 + }
  83 +
  84 + /**
  85 + * Get descripcion
  86 + *
  87 + * @return string
  88 + */
  89 + public function getDescripcion()
  90 + {
  91 + return $this->descripcion;
  92 + }
  93 +
  94 + /**
  95 + * Get id
  96 + *
  97 + * @return integer
  98 + */
  99 + public function getId()
  100 + {
  101 + return $this->id;
  102 + }
  103 +}
0 104 \ No newline at end of file
... ...
src/AppBundle/Entity/Genero.php
... ... @@ -0,0 +1,84 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: Wilmer Ramones
  5 + * Date: 29/06/16
  6 + * Time: 07:52 AM
  7 + */
  8 +
  9 +namespace AppBundle\Entity;
  10 +
  11 +use Doctrine\ORM\Mapping as ORM;
  12 +
  13 +/**
  14 + * Genero
  15 + *
  16 + * @ORM\Table(name="genero", uniqueConstraints={@ORM\UniqueConstraint(name="uq_nombre", columns={"nombre"})})
  17 + * @ORM\Entity
  18 + */
  19 +class Genero
  20 +{
  21 + /**
  22 + * @var string
  23 + *
  24 + * @ORM\Column(name="nombre", type="string", length=10, nullable=false, options={"comment" = "Nombre del genero"})
  25 + */
  26 + private $nombre;
  27 +
  28 + /**
  29 + * @var integer
  30 + *
  31 + * @ORM\Column(name="id", type="integer", nullable=false, options={"comment" = "Identificador del genero"})
  32 + * @ORM\Id
  33 + * @ORM\GeneratedValue(strategy="IDENTITY")
  34 + * @ORM\SequenceGenerator(sequenceName="genero_id_seq", allocationSize=1, initialValue=1)
  35 + */
  36 + private $id;
  37 +
  38 +
  39 +
  40 + /**
  41 + * Set nombre
  42 + *
  43 + * @param string $nombre
  44 + * @return Genero
  45 + */
  46 + public function setNombre($nombre)
  47 + {
  48 + $this->nombre = $nombre;
  49 +
  50 + return $this;
  51 + }
  52 +
  53 + /**
  54 + * Get nombre
  55 + *
  56 + * @return string
  57 + */
  58 + public function getNombre()
  59 + {
  60 + return $this->nombre;
  61 + }
  62 +
  63 + /**
  64 + * Get id
  65 + *
  66 + * @return integer
  67 + */
  68 + public function getId()
  69 + {
  70 + return $this->id;
  71 + }
  72 +
  73 + /**
  74 + * Get nombre
  75 + *
  76 + * @return string
  77 + */
  78 + public function __toString()
  79 + {
  80 + return $this->nombre;
  81 + }
  82 +
  83 +
  84 +}
... ...
src/AppBundle/Entity/Genero.php~
... ... @@ -0,0 +1,84 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: Wilmer Ramones
  5 + * Date: 29/06/16
  6 + * Time: 07:52 AM
  7 + */
  8 +
  9 +namespace AppBundle\Entity;
  10 +
  11 +use Doctrine\ORM\Mapping as ORM;
  12 +
  13 +/**
  14 + * Genero
  15 + *
  16 + * @ORM\Table(name="genero", uniqueConstraints={@ORM\UniqueConstraint(name="uq_nombre", columns={"nombre"})})
  17 + * @ORM\Entity
  18 + */
  19 +class Genero
  20 +{
  21 + /**
  22 + * @var string
  23 + *
  24 + * @ORM\Column(name="nombre", type="string", length=10, nullable=false, options={"comment" = "Nombre del genero"})
  25 + */
  26 + private $nombre;
  27 +
  28 + /**
  29 + * @var integer
  30 + *
  31 + * @ORM\Column(name="id", type="integer", nullable=false, options={"comment" = "Identificador del genero"})
  32 + * @ORM\Id
  33 + * @ORM\GeneratedValue(strategy="IDENTITY")
  34 + * @ORM\SequenceGenerator(sequenceName="genero_id_seq", allocationSize=1, initialValue=1)
  35 + */
  36 + private $id;
  37 +
  38 +
  39 +
  40 + /**
  41 + * Set nombre
  42 + *
  43 + * @param string $nombre
  44 + * @return Genero
  45 + */
  46 + public function setNombre($nombre)
  47 + {
  48 + $this->nombre = $nombre;
  49 +
  50 + return $this;
  51 + }
  52 +
  53 + /**
  54 + * Get nombre
  55 + *
  56 + * @return string
  57 + */
  58 + public function getNombre()
  59 + {
  60 + return $this->nombre;
  61 + }
  62 +
  63 + /**
  64 + * Get id
  65 + *
  66 + * @return integer
  67 + */
  68 + public function getId()
  69 + {
  70 + return $this->id;
  71 + }
  72 +
  73 + /**
  74 + * Get nombre
  75 + *
  76 + * @return string
  77 + */
  78 + public function __toString()
  79 + {
  80 + return $this->nombre;
  81 + }
  82 +
  83 +
  84 +}
0 85 \ No newline at end of file
... ...
src/AppBundle/Entity/Institucion.php
... ... @@ -0,0 +1,297 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:40 AM
  7 + */
  8 +
  9 +
  10 +namespace AppBundle\Entity;
  11 +
  12 +use Doctrine\ORM\Mapping as ORM;
  13 +
  14 +/**
  15 + * Institucion
  16 + *
  17 + * @ORM\Table(name="institucion", indexes={@ORM\Index(name="fki_institucion_tipo_institucion", columns={"id_tipo_institucion"}), @ORM\Index(name="eje_parroquia_institucion", columns={"id_eje_parroquia"})})
  18 + * @ORM\Entity
  19 + */
  20 +class Institucion
  21 +{
  22 + /**
  23 + * @var string
  24 + *
  25 + * @ORM\Column(name="nombre", type="string", length=250, nullable=false, options={"comment" = "Nombre de la institucion.Debe ser unico, las instituciones que compartan y/o alternen el mismo espacio fisico deben diferenciarse por su nombre. Ej: Alde-Bolivar-Dia, Alde-Bolivar-Noche"})
  26 + */
  27 + private $nombre;
  28 +
  29 + /**
  30 + * @var string
  31 + *
  32 + * @ORM\Column(name="direccion", type="text", nullable=false, options={"comment" = "Direccion de ubicacion fisica de la institucion"})
  33 + */
  34 + private $direccion;
  35 +
  36 + /**
  37 + * @var string
  38 + *
  39 + * @ORM\Column(name="latitud", type="string", length=12, nullable=true, options={"comment" = "Coordenada geografica en latitud, ángulo entre cualquier punto del planeta tierra y el ecuador"})
  40 + */
  41 + private $latitud;
  42 +
  43 + /**
  44 + * @var string
  45 + *
  46 + * @ORM\Column(name="longitud", type="string", length=12, nullable=true, options={"comment" = "Coordenada geografica en longitud, ángulo a lo largo del ecuador desde cualquier punto de la Tierra"})
  47 + */
  48 + private $longitud;
  49 +
  50 + /**
  51 + * @var string
  52 + *
  53 + * @ORM\Column(name="telefono", type="decimal", precision=12, scale=0, nullable=true,options={"comment" = "Numero de telefono de la institucion"})
  54 + */
  55 + private $telefono;
  56 +
  57 + /**
  58 + * @var integer
  59 + *
  60 + * @ORM\Column(name="id_aldea_sucre", type="integer", nullable=true)
  61 + */
  62 + private $idAldeaSucre;
  63 +
  64 + /**
  65 + * @var integer
  66 + *
  67 + * @ORM\Column(name="id", type="integer", nullable=false, options={"comment" = "Identificador de la institucion"})
  68 + * @ORM\Id
  69 + * @ORM\GeneratedValue(strategy="IDENTITY")
  70 + * @ORM\SequenceGenerator(sequenceName="institucion_id_seq", allocationSize=1, initialValue=1)
  71 + */
  72 + private $id;
  73 +
  74 + /**
  75 + * @var \AppBundle\Entity\TipoInstitucion
  76 + *
  77 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\TipoInstitucion")
  78 + * @ORM\JoinColumns({
  79 + * @ORM\JoinColumn(name="id_tipo_institucion", referencedColumnName="id", nullable=false)
  80 + * })
  81 + */
  82 + private $idTipoInstitucion;
  83 +
  84 + /**
  85 + * @var \AppBundle\Entity\EjeParroquia
  86 + *
  87 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\EjeParroquia")
  88 + * @ORM\JoinColumns({
  89 + * @ORM\JoinColumn(name="id_eje_parroquia", referencedColumnName="id", nullable=false)
  90 + * })
  91 + */
  92 + private $idEjeParroquia;
  93 +
  94 +
  95 +
  96 + /**
  97 + * Set nombre
  98 + *
  99 + * @param string $nombre
  100 + * @return Institucion
  101 + */
  102 + public function setNombre($nombre)
  103 + {
  104 + $this->nombre = $nombre;
  105 +
  106 + return $this;
  107 + }
  108 +
  109 + /**
  110 + * Get nombre
  111 + *
  112 + * @return string
  113 + */
  114 + public function getNombre()
  115 + {
  116 + return $this->nombre;
  117 + }
  118 +
  119 + /**
  120 + * Set direccion
  121 + *
  122 + * @param string $direccion
  123 + * @return Institucion
  124 + */
  125 + public function setDireccion($direccion)
  126 + {
  127 + $this->direccion = $direccion;
  128 +
  129 + return $this;
  130 + }
  131 +
  132 + /**
  133 + * Get direccion
  134 + *
  135 + * @return string
  136 + */
  137 + public function getDireccion()
  138 + {
  139 + return $this->direccion;
  140 + }
  141 +
  142 + /**
  143 + * Set latitud
  144 + *
  145 + * @param string $latitud
  146 + * @return Institucion
  147 + */
  148 + public function setLatitud($latitud)
  149 + {
  150 + $this->latitud = $latitud;
  151 +
  152 + return $this;
  153 + }
  154 +
  155 + /**
  156 + * Get latitud
  157 + *
  158 + * @return string
  159 + */
  160 + public function getLatitud()
  161 + {
  162 + return $this->latitud;
  163 + }
  164 +
  165 + /**
  166 + * Set longitud
  167 + *
  168 + * @param string $longitud
  169 + * @return Institucion
  170 + */
  171 + public function setLongitud($longitud)
  172 + {
  173 + $this->longitud = $longitud;
  174 +
  175 + return $this;
  176 + }
  177 +
  178 + /**
  179 + * Get longitud
  180 + *
  181 + * @return string
  182 + */
  183 + public function getLongitud()
  184 + {
  185 + return $this->longitud;
  186 + }
  187 +
  188 + /**
  189 + * Set telefono
  190 + *
  191 + * @param string $telefono
  192 + * @return Institucion
  193 + */
  194 + public function setTelefono($telefono)
  195 + {
  196 + $this->telefono = $telefono;
  197 +
  198 + return $this;
  199 + }
  200 +
  201 + /**
  202 + * Get telefono
  203 + *
  204 + * @return string
  205 + */
  206 + public function getTelefono()
  207 + {
  208 + return $this->telefono;
  209 + }
  210 +
  211 + /**
  212 + * Set idAldeaSucre
  213 + *
  214 + * @param integer $idAldeaSucre
  215 + * @return Institucion
  216 + */
  217 + public function setIdAldeaSucre($idAldeaSucre)
  218 + {
  219 + $this->idAldeaSucre = $idAldeaSucre;
  220 +
  221 + return $this;
  222 + }
  223 +
  224 + /**
  225 + * Get idAldeaSucre
  226 + *
  227 + * @return integer
  228 + */
  229 + public function getIdAldeaSucre()
  230 + {
  231 + return $this->idAldeaSucre;
  232 + }
  233 +
  234 + /**
  235 + * Get id
  236 + *
  237 + * @return integer
  238 + */
  239 + public function getId()
  240 + {
  241 + return $this->id;
  242 + }
  243 +
  244 + /**
  245 + * Set idTipoInstitucion
  246 + *
  247 + * @param \AppBundle\Entity\TipoInstitucion $idTipoInstitucion
  248 + * @return Institucion
  249 + */
  250 + public function setIdTipoInstitucion(\AppBundle\Entity\TipoInstitucion $idTipoInstitucion = null)
  251 + {
  252 + $this->idTipoInstitucion = $idTipoInstitucion;
  253 +
  254 + return $this;
  255 + }
  256 +
  257 + /**
  258 + * Get idTipoInstitucion
  259 + *
  260 + * @return \AppBundle\Entity\TipoInstitucion
  261 + */
  262 + public function getIdTipoInstitucion()
  263 + {
  264 + return $this->idTipoInstitucion;
  265 + }
  266 +
  267 + /**
  268 + * Set idEjeParroquia
  269 + *
  270 + * @param \AppBundle\Entity\EjeParroquia $idEjeParroquia
  271 + * @return Institucion
  272 + */
  273 + public function setIdEjeParroquia(\AppBundle\Entity\EjeParroquia $idEjeParroquia = null)
  274 + {
  275 + $this->idEjeParroquia = $idEjeParroquia;
  276 +
  277 + return $this;
  278 + }
  279 +
  280 + /**
  281 + * Get idEjeParroquia
  282 + *
  283 + * @return \AppBundle\Entity\EjeParroquia
  284 + */
  285 + public function getIdEjeParroquia()
  286 + {
  287 + return $this->idEjeParroquia;
  288 + }
  289 +
  290 +
  291 +
  292 + public function __toString(){
  293 + return $this->getNombre();
  294 + }
  295 +
  296 +
  297 +}
0 298 \ No newline at end of file
... ...
src/AppBundle/Entity/Municipio.php
... ... @@ -0,0 +1,136 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:45 AM
  7 + */
  8 +
  9 +
  10 +namespace AppBundle\Entity;
  11 +
  12 +use Doctrine\ORM\Mapping as ORM;
  13 +
  14 +/**
  15 + * Municipio
  16 + *
  17 + * @ORM\Table(name="municipio", uniqueConstraints={@ORM\UniqueConstraint(name="uq_municipio", columns={"codigo"})}, indexes={@ORM\Index(name="fki_estado_municipio", columns={"id_estado"})})
  18 + * @ORM\Entity
  19 + */
  20 +class Municipio
  21 +{
  22 + /**
  23 + * @var string
  24 + *
  25 + * @ORM\Column(name="nombre", type="string", length=100, nullable=false, options={"comment" = "Nombre del municipio"})
  26 + */
  27 + private $nombre;
  28 +
  29 + /**
  30 + * @var string
  31 + *
  32 + * @ORM\Column(name="codigo", type="decimal", precision=4, scale=0, nullable=false, options={"comment" = "Codigo del muncipio (union de todas las parroquias que lo componen)"})
  33 + */
  34 + private $codigo;
  35 +
  36 + /**
  37 + * @var integer
  38 + *
  39 + * @ORM\Column(name="id", type="integer", nullable=false, options={"comment" = "Identificador del municipio"})
  40 + * @ORM\Id
  41 + * @ORM\GeneratedValue(strategy="IDENTITY")
  42 + * @ORM\SequenceGenerator(sequenceName="municipio_id_seq", allocationSize=1, initialValue=1)
  43 + */
  44 + private $id;
  45 +
  46 + /**
  47 + * @var \AppBundle\Entity\Estado
  48 + *
  49 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Estado")
  50 + * @ORM\JoinColumns({
  51 + * @ORM\JoinColumn(name="id_estado", referencedColumnName="id", nullable=false)
  52 + * })
  53 + */
  54 + private $idEstado;
  55 +
  56 +
  57 +
  58 + /**
  59 + * Set nombre
  60 + *
  61 + * @param string $nombre
  62 + * @return Municipio
  63 + */
  64 + public function setNombre($nombre)
  65 + {
  66 + $this->nombre = $nombre;
  67 +
  68 + return $this;
  69 + }
  70 +
  71 + /**
  72 + * Get nombre
  73 + *
  74 + * @return string
  75 + */
  76 + public function getNombre()
  77 + {
  78 + return $this->nombre;
  79 + }
  80 +
  81 + /**
  82 + * Set codigo
  83 + *
  84 + * @param string $codigo
  85 + * @return Municipio
  86 + */
  87 + public function setCodigo($codigo)
  88 + {
  89 + $this->codigo = $codigo;
  90 +
  91 + return $this;
  92 + }
  93 +
  94 + /**
  95 + * Get codigo
  96 + *
  97 + * @return string
  98 + */
  99 + public function getCodigo()
  100 + {
  101 + return $this->codigo;
  102 + }
  103 +
  104 + /**
  105 + * Get id
  106 + *
  107 + * @return integer
  108 + */
  109 + public function getId()
  110 + {
  111 + return $this->id;
  112 + }
  113 +
  114 + /**
  115 + * Set idEstado
  116 + *
  117 + * @param \AppBundle\Entity\Estado $idEstado
  118 + * @return Municipio
  119 + */
  120 + public function setIdEstado(\AppBundle\Entity\Estado $idEstado = null)
  121 + {
  122 + $this->idEstado = $idEstado;
  123 +
  124 + return $this;
  125 + }
  126 +
  127 + /**
  128 + * Get idEstado
  129 + *
  130 + * @return \AppBundle\Entity\Estado
  131 + */
  132 + public function getIdEstado()
  133 + {
  134 + return $this->idEstado;
  135 + }
  136 +}
0 137 \ No newline at end of file
... ...
src/AppBundle/Entity/Nacionalidad.php
... ... @@ -0,0 +1,115 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:01 AM
  7 + */
  8 +
  9 +
  10 +namespace AppBundle\Entity;
  11 +
  12 +use Doctrine\ORM\Mapping as ORM;
  13 +
  14 +/**
  15 + * Nacionalidad
  16 + *
  17 + * @ORM\Table(name="nacionalidad", uniqueConstraints={@ORM\UniqueConstraint(name="uq_nacionalidad", columns={"abreviacion", "nombre"})})
  18 + * @ORM\Entity
  19 + */
  20 +class Nacionalidad
  21 +{
  22 + /**
  23 + * @var string
  24 + *
  25 + * @ORM\Column(name="nombre", type="string", length=50, nullable=false, options={"comment" = "Registra el nombre nacionalidad"})
  26 + */
  27 + private $nombre;
  28 +
  29 + /**
  30 + * @var string
  31 + *
  32 + * @ORM\Column(name="abreviacion", type="string", length=2, nullable=false, options={"comment" = "Registra abreviación nacionalidad"})
  33 + */
  34 + private $abreviacion;
  35 +
  36 + /**
  37 + * @var integer
  38 + *
  39 + * @ORM\Column(name="id", type="integer", nullable=false, options={"comment" = "Identificador de la nacionalidad"})
  40 + * @ORM\Id
  41 + * @ORM\GeneratedValue(strategy="IDENTITY")
  42 + * @ORM\SequenceGenerator(sequenceName="nacionalidad_id_seq", allocationSize=1, initialValue=1)
  43 + */
  44 + private $id;
  45 +
  46 +
  47 +
  48 + /**
  49 + * Set nombre
  50 + *
  51 + * @param string $nombre
  52 + * @return Nacionalidad
  53 + */
  54 + public function setNombre($nombre)
  55 + {
  56 + $this->nombre = $nombre;
  57 +
  58 + return $this;
  59 + }
  60 +
  61 + /**
  62 + * Get nombre
  63 + *
  64 + * @return string
  65 + */
  66 + public function getNombre()
  67 + {
  68 + return $this->nombre;
  69 + }
  70 +
  71 + /**
  72 + * Set abreviacion
  73 + *
  74 + * @param string $abreviacion
  75 + * @return Nacionalidad
  76 + */
  77 + public function setAbreviacion($abreviacion)
  78 + {
  79 + $this->abreviacion = $abreviacion;
  80 +
  81 + return $this;
  82 + }
  83 +
  84 + /**
  85 + * Get abreviacion
  86 + *
  87 + * @return string
  88 + */
  89 + public function getAbreviacion()
  90 + {
  91 + return $this->abreviacion;
  92 + }
  93 +
  94 + /**
  95 + * Get id
  96 + *
  97 + * @return integer
  98 + */
  99 + public function getId()
  100 + {
  101 + return $this->id;
  102 + }
  103 +
  104 + /**
  105 + * Get nombre
  106 + *
  107 + * @return string
  108 + */
  109 + public function __toString()
  110 + {
  111 + return $this->nombre;
  112 + }
  113 +
  114 +
  115 +}
0 116 \ No newline at end of file
... ...
src/AppBundle/Entity/PaisNacimiento.php
... ... @@ -0,0 +1,85 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: Wilmer Ramones
  5 + * Date: 29/06/16
  6 + * Time: 08:00 AM
  7 + */
  8 +
  9 +namespace AppBundle\Entity;
  10 +
  11 +use Doctrine\ORM\Mapping as ORM;
  12 +
  13 +/**
  14 + * PaisNacimiento
  15 + *
  16 + * @ORM\Table(name="pais_nacimiento", uniqueConstraints={@ORM\UniqueConstraint(name="uq_pais_nacimiento", columns={"nombre"})})
  17 + * @ORM\Entity
  18 + */
  19 +class PaisNacimiento
  20 +{
  21 + /**
  22 + * @var string
  23 + *
  24 + * @ORM\Column(name="nombre", type="string", length=50, nullable=false, options={"comment" = "nombre del pais"})
  25 + */
  26 + private $nombre;
  27 +
  28 + /**
  29 + * @var integer
  30 + *
  31 + * @ORM\Column(name="id", type="integer", nullable=false, options={"comment" = "identificador del pais"})
  32 + * @ORM\Id
  33 + * @ORM\GeneratedValue(strategy="IDENTITY")
  34 + * @ORM\SequenceGenerator(sequenceName="pais_nacimiento_id_seq", allocationSize=1, initialValue=1)
  35 + */
  36 + private $id;
  37 +
  38 +
  39 +
  40 + /**
  41 + * Set nombre
  42 + *
  43 + * @param string $nombre
  44 + * @return PaisNacimiento
  45 + */
  46 + public function setNombre($nombre)
  47 + {
  48 + $this->nombre = $nombre;
  49 +
  50 + return $this;
  51 + }
  52 +
  53 + /**
  54 + * Get nombre
  55 + *
  56 + * @return string
  57 + */
  58 + public function getNombre()
  59 + {
  60 + return $this->nombre;
  61 + }
  62 +
  63 + /**
  64 + * Get id
  65 + *
  66 + * @return integer
  67 + */
  68 + public function getId()
  69 + {
  70 + return $this->id;
  71 + }
  72 +
  73 +
  74 + /**
  75 + * Get nombre
  76 + *
  77 + * @return string
  78 + */
  79 + public function __toString()
  80 + {
  81 + return $this->nombre;
  82 + }
  83 +
  84 +
  85 +}
0 86 \ No newline at end of file
... ...
src/AppBundle/Entity/Parroquia.php
... ... @@ -0,0 +1,136 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:44 AM
  7 + */
  8 +
  9 +
  10 +namespace AppBundle\Entity;
  11 +
  12 +use Doctrine\ORM\Mapping as ORM;
  13 +
  14 +/**
  15 + * Parroquia
  16 + *
  17 + * @ORM\Table(name="parroquia", uniqueConstraints={@ORM\UniqueConstraint(name="uq_parroquia", columns={"codigo"})}, indexes={@ORM\Index(name="fki_id_municipio_parroquia", columns={"id_municipio"})})
  18 + * @ORM\Entity
  19 + */
  20 +class Parroquia
  21 +{
  22 + /**
  23 + * @var string
  24 + *
  25 + * @ORM\Column(name="nombre", type="string", length=40, nullable=false, options={"comment" = "nombre de parroquia"})
  26 + */
  27 + private $nombre;
  28 +
  29 + /**
  30 + * @var string
  31 + *
  32 + * @ORM\Column(name="codigo", type="decimal", precision=6, scale=0, nullable=false, options={"comment" = "codigo parroquia"})
  33 + */
  34 + private $codigo;
  35 +
  36 + /**
  37 + * @var integer
  38 + *
  39 + * @ORM\Column(name="id", type="integer", nullable=false, options={"comment" = "identificador de la parroquia"})
  40 + * @ORM\Id
  41 + * @ORM\GeneratedValue(strategy="IDENTITY")
  42 + * @ORM\SequenceGenerator(sequenceName="parroquia_id_seq", allocationSize=1, initialValue=1)
  43 + */
  44 + private $id;
  45 +
  46 + /**
  47 + * @var \AppBundle\Entity\Municipio
  48 + *
  49 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Municipio")
  50 + * @ORM\JoinColumns({
  51 + * @ORM\JoinColumn(name="id_municipio", referencedColumnName="id", nullable=false)
  52 + * })
  53 + */
  54 + private $idMunicipio;
  55 +
  56 +
  57 +
  58 + /**
  59 + * Set nombre
  60 + *
  61 + * @param string $nombre
  62 + * @return Parroquia
  63 + */
  64 + public function setNombre($nombre)
  65 + {
  66 + $this->nombre = $nombre;
  67 +
  68 + return $this;
  69 + }
  70 +
  71 + /**
  72 + * Get nombre
  73 + *
  74 + * @return string
  75 + */
  76 + public function getNombre()
  77 + {
  78 + return $this->nombre;
  79 + }
  80 +
  81 + /**
  82 + * Set codigo
  83 + *
  84 + * @param string $codigo
  85 + * @return Parroquia
  86 + */
  87 + public function setCodigo($codigo)
  88 + {
  89 + $this->codigo = $codigo;
  90 +
  91 + return $this;
  92 + }
  93 +
  94 + /**
  95 + * Get codigo
  96 + *
  97 + * @return string
  98 + */
  99 + public function getCodigo()
  100 + {
  101 + return $this->codigo;
  102 + }
  103 +
  104 + /**
  105 + * Get id
  106 + *
  107 + * @return integer
  108 + */
  109 + public function getId()
  110 + {
  111 + return $this->id;
  112 + }
  113 +
  114 + /**
  115 + * Set idMunicipio
  116 + *
  117 + * @param \AppBundle\Entity\Municipio $idMunicipio
  118 + * @return Parroquia
  119 + */
  120 + public function setIdMunicipio(\AppBundle\Entity\Municipio $idMunicipio = null)
  121 + {
  122 + $this->idMunicipio = $idMunicipio;
  123 +
  124 + return $this;
  125 + }
  126 +
  127 + /**
  128 + * Get idMunicipio
  129 + *
  130 + * @return \AppBundle\Entity\Municipio
  131 + */
  132 + public function getIdMunicipio()
  133 + {
  134 + return $this->idMunicipio;
  135 + }
  136 +}
... ...
src/AppBundle/Entity/Persona.php
... ... @@ -0,0 +1,623 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:10 AM
  7 + */
  8 +
  9 +
  10 +/**
  11 + * Created by PhpStorm.
  12 + * User: ubv-cipee
  13 + * Date: 29/06/16
  14 + * Time: 08:03 AM
  15 + */
  16 +
  17 +
  18 +namespace AppBundle\Entity;
  19 +
  20 +use Doctrine\ORM\Mapping as ORM;
  21 +use Symfony\Component\Validator\Constraints as Assert;
  22 +
  23 +/**
  24 + * Persona
  25 + *
  26 + * @ORM\Table(name="persona", uniqueConstraints={@ORM\UniqueConstraint(name="uq_persona", columns={"cedula_pasaporte"})}, indexes={@ORM\Index(name="fki_pais_nacimiento_persona", columns={"id_pais_nacimiento"}), @ORM\Index(name="fki_estado_civil_persona", columns={"id_estado_civil"}), @ORM\Index(name="fki_", columns={"id_genero"}), @ORM\Index(name="fki_documento_identidad_persona", columns={"id_documento_identidad"}), @ORM\Index(name="IDX_51E5B69BB0DC2AB1", columns={"id_nacionalidad"})})
  27 + * @ORM\Entity(repositoryClass="PersonaRepository")
  28 + * @ORM\HasLifecycleCallbacks()
  29 + */
  30 +class Persona
  31 +{
  32 +
  33 +
  34 +
  35 +
  36 +
  37 +
  38 + /**
  39 + * @var string
  40 + *
  41 + * @ORM\Column(name="primer_nombre", type="string", length=20, nullable=false, options={"comment" = "primer nombre persona"})
  42 + */
  43 + private $primerNombre;
  44 +
  45 +
  46 +
  47 + /**
  48 + * @var string
  49 + *
  50 + * @ORM\Column(name="segundo_nombre", type="string", length=70, nullable=true, options={"comment" = "segundo y otros nombres persona"})
  51 + */
  52 + private $segundoNombre;
  53 +
  54 + /**
  55 + * @var string
  56 + *
  57 + * @ORM\Column(name="primer_apellido", type="string", length=20, nullable=false, options={"comment" = "primer apellido persona"})
  58 + */
  59 + private $primerApellido;
  60 +
  61 + /**
  62 + * @var string
  63 + *
  64 + * @ORM\Column(name="segundo_apellido", type="string", length=70, nullable=true, options={"comment" = "segundo y otros apellidos persona"})
  65 + */
  66 + private $segundoApellido;
  67 +
  68 + /**
  69 + * @var string
  70 + *
  71 + * @ORM\Column(name="cedula_pasaporte", type="string", length=15, nullable=false, options={"comment" = "Numero de cedula o pasaporte de la persona"})
  72 + */
  73 + private $cedulaPasaporte;
  74 +
  75 + /**
  76 + * @var \DateTime
  77 + *
  78 + * @ORM\Column(name="fecha_nacimiento", type="date", nullable=false, options={"comment" = "fecha de nacimiento de la persona"})
  79 + */
  80 + private $fechaNacimiento;
  81 +
  82 + /**
  83 + * @var string
  84 + *
  85 + * @ORM\Column(name="correo_electronico", type="string", length=80, nullable=true, options={"comment" = "nombre de correo electronico de la apersona"})
  86 + */
  87 + private $correoElectronico;
  88 +
  89 + /**
  90 + * @var string
  91 + *
  92 + * @ORM\Column(name="direccion_residencia", type="text", nullable=false, options={"comment" = "direccion de residencia de la persona"})
  93 + */
  94 + private $direccionResidencia;
  95 +
  96 + /**
  97 + * @var \DateTime
  98 + *
  99 + * @ORM\Column(name="fecha_registro", type="date", nullable=false, options={"comment" = "fecha de realizacion del registro"})
  100 + */
  101 + private $fechaRegistro;
  102 +
  103 + /**
  104 + * @var \DateTime
  105 + *
  106 + * @ORM\Column(name="fecha_actualizacion", type="date", nullable=false, options={"comment" = "fecha de actualizacion del registro"})
  107 + */
  108 + private $fechaActualizacion;
  109 +
  110 + /**
  111 + * @var boolean
  112 + *
  113 + * @ORM\Column(name="privado_libertad", type="boolean", nullable=true, options={"comment" = "indica si la persona esta privada de libertad", "default" = false})
  114 + */
  115 + private $privadoLibertad;
  116 +
  117 + /**
  118 + * @var string
  119 + *
  120 + * @ORM\Column(name="certificado_conapdis", type="string", length=30, nullable=true, options={"comment" = "numero de certificado que emite CONAPDIS a los discapcitados"})
  121 + */
  122 + private $certificadoConapdis;
  123 +
  124 + /**
  125 + * @var integer
  126 + *
  127 + * @ORM\Column(name="id_sucre", type="integer", nullable=true, options={"comment" = "identificador de la persona dentro del sistema sucre"})
  128 + */
  129 + private $idSucre;
  130 +
  131 + /**
  132 + * @var integer
  133 + *
  134 + * @ORM\Column(name="id", type="integer", options={"comment" = "identificador de la persona"}, nullable=false)
  135 + * @ORM\Id
  136 + * @ORM\GeneratedValue(strategy="IDENTITY")
  137 + * @ORM\SequenceGenerator(sequenceName="persona_id_seq", allocationSize=1, initialValue=1)
  138 + */
  139 + private $id;
  140 +
  141 + /**
  142 + * @var \AppBundle\Entity\PaisNacimiento
  143 + *
  144 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\PaisNacimiento")
  145 + * @ORM\JoinColumns({
  146 + * @ORM\JoinColumn(name="id_pais_nacimiento", referencedColumnName="id", nullable=false)
  147 + * })
  148 + */
  149 + private $idPaisNacimiento;
  150 +
  151 + /**
  152 + * @var \AppBundle\Entity\Nacionalidad
  153 + *
  154 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Nacionalidad")
  155 + * @ORM\JoinColumns({
  156 + * @ORM\JoinColumn(name="id_nacionalidad", referencedColumnName="id", nullable=false)
  157 + * })
  158 + */
  159 + private $idNacionalidad;
  160 +
  161 + /**
  162 + * @var \AppBundle\Entity\Genero
  163 + *
  164 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Genero")
  165 + * @ORM\JoinColumns({
  166 + * @ORM\JoinColumn(name="id_genero", referencedColumnName="id", nullable=false)
  167 + * })
  168 + */
  169 + private $idGenero;
  170 +
  171 + /**
  172 + * @var \AppBundle\Entity\EstadoCivil
  173 + *
  174 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\EstadoCivil")
  175 + * @ORM\JoinColumns({
  176 + * @ORM\JoinColumn(name="id_estado_civil", referencedColumnName="id", nullable=false)
  177 + * })
  178 + */
  179 + private $idEstadoCivil;
  180 +
  181 + /**
  182 + * @var \AppBundle\Entity\DocumentoIdentidad
  183 + *
  184 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\DocumentoIdentidad")
  185 + * @ORM\JoinColumns({
  186 + * @ORM\JoinColumn(name="id_documento_identidad", referencedColumnName="id", nullable=false)
  187 + * })
  188 + */
  189 + private $idDocumentoentidad;
  190 +
  191 +
  192 +
  193 +
  194 +
  195 +
  196 + /**
  197 + * Set primerNombre
  198 + *
  199 + * @param string $primerNombre
  200 + * @return Persona
  201 + */
  202 + public function setPrimerNombre($primerNombre)
  203 + {
  204 + $this->primerNombre = $primerNombre;
  205 +
  206 + return $this;
  207 + }
  208 +
  209 + /**
  210 + * Get primerNombre
  211 + *
  212 + * @return string
  213 + */
  214 + public function getPrimerNombre()
  215 + {
  216 + return $this->primerNombre;
  217 + }
  218 +
  219 + /**
  220 + * Set segundoNombre
  221 + *
  222 + * @param string $segundoNombre
  223 + * @return Persona
  224 + */
  225 + public function setSegundoNombre($segundoNombre)
  226 + {
  227 + $this->segundoNombre = $segundoNombre;
  228 +
  229 + return $this;
  230 + }
  231 +
  232 + /**
  233 + * Get segundoNombre
  234 + *
  235 + * @return string
  236 + */
  237 + public function getSegundoNombre()
  238 + {
  239 + return $this->segundoNombre;
  240 + }
  241 +
  242 + /**
  243 + * Set primerApellido
  244 + *
  245 + * @param string $primerApellido
  246 + * @return Persona
  247 + */
  248 + public function setPrimerApellido($primerApellido)
  249 + {
  250 + $this->primerApellido = $primerApellido;
  251 +
  252 + return $this;
  253 + }
  254 +
  255 + /**
  256 + * Get primerApellido
  257 + *
  258 + * @return string
  259 + */
  260 + public function getPrimerApellido()
  261 + {
  262 + return $this->primerApellido;
  263 + }
  264 +
  265 + /**
  266 + * Set segundoApellido
  267 + *
  268 + * @param string $segundoApellido
  269 + * @return Persona
  270 + */
  271 + public function setSegundoApellido($segundoApellido)
  272 + {
  273 + $this->segundoApellido = $segundoApellido;
  274 +
  275 + return $this;
  276 + }
  277 +
  278 + /**
  279 + * Get segundoApellido
  280 + *
  281 + * @return string
  282 + */
  283 + public function getSegundoApellido()
  284 + {
  285 + return $this->segundoApellido;
  286 + }
  287 +
  288 + /**
  289 + * Set cedulaPasaporte
  290 + *
  291 + * @param string $cedulaPasaporte
  292 + * @return Persona
  293 + */
  294 + public function setCedulaPasaporte($cedulaPasaporte)
  295 + {
  296 + $this->cedulaPasaporte = $cedulaPasaporte;
  297 +
  298 + return $this;
  299 + }
  300 +
  301 + /**
  302 + * Get cedulaPasaporte
  303 + *
  304 + * @return string
  305 + */
  306 + public function getCedulaPasaporte()
  307 + {
  308 + return $this->cedulaPasaporte;
  309 + }
  310 +
  311 + /**
  312 + * Set fechaNacimiento
  313 + *
  314 + * @param \DateTime $fechaNacimiento
  315 + * @return Persona
  316 + */
  317 + public function setFechaNacimiento($fechaNacimiento)
  318 + {
  319 + $this->fechaNacimiento = $fechaNacimiento;
  320 +
  321 + return $this;
  322 + }
  323 +
  324 + /**
  325 + * Get fechaNacimiento
  326 + *
  327 + * @return \DateTime
  328 + */
  329 + public function getFechaNacimiento()
  330 + {
  331 + return $this->fechaNacimiento;
  332 + }
  333 +
  334 + /**
  335 + * Set correoElectronico
  336 + *
  337 + * @param string $correoElectronico
  338 + * @return Persona
  339 + */
  340 + public function setCorreoElectronico($correoElectronico)
  341 + {
  342 + $this->correoElectronico = $correoElectronico;
  343 +
  344 + return $this;
  345 + }
  346 +
  347 + /**
  348 + * Get correoElectronico
  349 + *
  350 + * @return string
  351 + */
  352 + public function getCorreoElectronico()
  353 + {
  354 + return $this->correoElectronico;
  355 + }
  356 +
  357 + /**
  358 + * Set direccionResidencia
  359 + *
  360 + * @param string $direccionResidencia
  361 + * @return Persona
  362 + */
  363 + public function setDireccionResidencia($direccionResidencia)
  364 + {
  365 + $this->direccionResidencia = $direccionResidencia;
  366 +
  367 + return $this;
  368 + }
  369 +
  370 + /**
  371 + * Get direccionResidencia
  372 + *
  373 + * @return string
  374 + */
  375 + public function getDireccionResidencia()
  376 + {
  377 + return $this->direccionResidencia;
  378 + }
  379 +
  380 +
  381 +
  382 + /**
  383 + * Get fechaRegistro
  384 + *
  385 + * @return \DateTime
  386 + */
  387 + public function getFechaRegistro()
  388 + {
  389 + return $this->fechaRegistro;
  390 + }
  391 +
  392 +
  393 +
  394 + /**
  395 + * Get fechaActualizacion
  396 + *
  397 + * @return \DateTime
  398 + */
  399 + public function getFechaActualizacion()
  400 + {
  401 + return $this->fechaActualizacion;
  402 + }
  403 +
  404 + /**
  405 + * Set privadoLibertad
  406 + *
  407 + * @param boolean $privadoLibertad
  408 + * @return Persona
  409 + */
  410 + public function setPrivadoLibertad($privadoLibertad)
  411 + {
  412 + $this->privadoLibertad = $privadoLibertad;
  413 +
  414 + return $this;
  415 + }
  416 +
  417 + /**
  418 + * Get privadoLibertad
  419 + *
  420 + * @return boolean
  421 + */
  422 + public function getPrivadoLibertad()
  423 + {
  424 + return $this->privadoLibertad;
  425 + }
  426 +
  427 + /**
  428 + * Set certificadoConapdis
  429 + *
  430 + * @param string $certificadoConapdis
  431 + * @return Persona
  432 + */
  433 + public function setCertificadoConapdis($certificadoConapdis)
  434 + {
  435 + $this->certificadoConapdis = $certificadoConapdis;
  436 +
  437 + return $this;
  438 + }
  439 +
  440 + /**
  441 + * Get certificadoConapdis
  442 + *
  443 + * @return string
  444 + */
  445 + public function getCertificadoConapdis()
  446 + {
  447 + return $this->certificadoConapdis;
  448 + }
  449 +
  450 + /**
  451 + * Set idSucre
  452 + *
  453 + * @param integer $idSucre
  454 + * @return Persona
  455 + */
  456 + public function setIdSucre($idSucre)
  457 + {
  458 + $this->idSucre = $idSucre;
  459 +
  460 + return $this;
  461 + }
  462 +
  463 + /**
  464 + * Get idSucre
  465 + *
  466 + * @return integer
  467 + */
  468 + public function getIdSucre()
  469 + {
  470 + return $this->idSucre;
  471 + }
  472 +
  473 + /**
  474 + * Get id
  475 + *
  476 + * @return integer
  477 + */
  478 + public function getId()
  479 + {
  480 + return $this->id;
  481 + }
  482 +
  483 + /**
  484 + * Set idPaisNacimiento
  485 + *
  486 + * @param \AppBundle\Entity\PaisNacimiento $idPaisNacimiento
  487 + * @return Persona
  488 + */
  489 + public function setIdPaisNacimiento(\AppBundle\Entity\PaisNacimiento $idPaisNacimiento = null)
  490 + {
  491 + $this->idPaisNacimiento = $idPaisNacimiento;
  492 +
  493 + return $this;
  494 + }
  495 +
  496 + /**
  497 + * Get idPaisNacimiento
  498 + *
  499 + * @return \AppBundle\Entity\PaisNacimiento
  500 + */
  501 + public function getIdPaisNacimiento()
  502 + {
  503 + return $this->idPaisNacimiento;
  504 + }
  505 +
  506 + /**
  507 + * Set idNacionalidad
  508 + *
  509 + * @param \AppBundle\Entity\Nacionalidad $idNacionalidad
  510 + * @return Persona
  511 + */
  512 + public function setIdNacionalidad(\AppBundle\Entity\Nacionalidad $idNacionalidad = null)
  513 + {
  514 + $this->idNacionalidad = $idNacionalidad;
  515 +
  516 + return $this;
  517 + }
  518 +
  519 + /**
  520 + * Get idNacionalidad
  521 + *
  522 + * @return \AppBundle\Entity\Nacionalidad
  523 + */
  524 + public function getIdNacionalidad()
  525 + {
  526 + return $this->idNacionalidad;
  527 + }
  528 +
  529 + /**
  530 + * Set idGenero
  531 + *
  532 + * @param \AppBundle\Entity\Genero $idGenero
  533 + * @return Persona
  534 + */
  535 + public function setIdGenero(\AppBundle\Entity\Genero $idGenero = null)
  536 + {
  537 + $this->idGenero = $idGenero;
  538 +
  539 + return $this;
  540 + }
  541 +
  542 + /**
  543 + * Get idGenero
  544 + *
  545 + * @return \AppBundle\Entity\Genero
  546 + */
  547 + public function getIdGenero()
  548 + {
  549 + return $this->idGenero;
  550 + }
  551 +
  552 + /**
  553 + * Set idEstadoCivil
  554 + *
  555 + * @param \AppBundle\Entity\EstadoCivil $idEstadoCivil
  556 + * @return Persona
  557 + */
  558 + public function setIdEstadoCivil(\AppBundle\Entity\EstadoCivil $idEstadoCivil = null)
  559 + {
  560 + $this->idEstadoCivil = $idEstadoCivil;
  561 +
  562 + return $this;
  563 + }
  564 +
  565 + /**
  566 + * Get idEstadoCivil
  567 + *
  568 + * @return \AppBundle\Entity\EstadoCivil
  569 + */
  570 + public function getIdEstadoCivil()
  571 + {
  572 + return $this->idEstadoCivil;
  573 + }
  574 +
  575 + /**
  576 + * Set idDocumentoentidad
  577 + *
  578 + * @param \AppBundle\Entity\DocumentoIdentidad $idDocumentoentidad
  579 + * @return Persona
  580 + */
  581 + public function setIdDocumentoentidad(\AppBundle\Entity\DocumentoIdentidad $idDocumentoentidad = null)
  582 + {
  583 + $this->idDocumentoentidad = $idDocumentoentidad;
  584 +
  585 + return $this;
  586 + }
  587 +
  588 + /**
  589 + * Get idDocumentoentidad
  590 + *
  591 + * @return \AppBundle\Entity\DocumentoIdentidad
  592 + */
  593 + public function getIdDocumentoentidad()
  594 + {
  595 + return $this->idDocumentoentidad;
  596 + }
  597 +
  598 +
  599 + /**
  600 + * @ORM\PrePersist()
  601 + */
  602 + public function prePersist()
  603 + {
  604 + $this->fechaRegistro = new \DateTime();
  605 + $this->fechaActualizacion = new \DateTime();
  606 + }
  607 +
  608 +
  609 + /**
  610 + * @ORM\PreUpdate()
  611 + */
  612 + public function setUpdateAtValue()
  613 + {
  614 + $this->fechaActualizacion = new \DateTime();
  615 + }
  616 +
  617 +
  618 +
  619 +
  620 +
  621 +
  622 +
  623 +}
0 624 \ No newline at end of file
... ...
src/AppBundle/Entity/PersonaRepository.php
... ... @@ -0,0 +1,15 @@
  1 +<?php
  2 +
  3 +namespace AppBundle\Entity;
  4 +
  5 +use Doctrine\ORM\EntityRepository;
  6 +
  7 +/**
  8 + * PersonaRepository
  9 + *
  10 + * This class was generated by the PhpStorm "Php Annotations" Plugin. Add your own custom
  11 + * repository methods below.
  12 + */
  13 +class PersonaRepository extends EntityRepository
  14 +{
  15 +}
... ...
src/AppBundle/Entity/Rol.php
... ... @@ -0,0 +1,181 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:09 AM
  7 + */
  8 +
  9 +
  10 +
  11 +namespace AppBundle\Entity;
  12 +
  13 +use Doctrine\ORM\Mapping as ORM;
  14 +
  15 +/**
  16 + * Rol
  17 + *
  18 + * @ORM\Table(name="rol", uniqueConstraints={@ORM\UniqueConstraint(name="i_rol", columns={"id_persona", "id_tipo_persona"})}, indexes={@ORM\Index(name="IDX_E553F3750BDD1F3", columns={"id_estatus"}), @ORM\Index(name="IDX_E553F378F781FEB", columns={"id_persona"}), @ORM\Index(name="IDX_E553F3761DDE249", columns={"id_tipo_persona"})})
  19 + * @ORM\Entity
  20 + */
  21 +class Rol
  22 +{
  23 + /**
  24 + * @var integer
  25 + *
  26 + * @ORM\Column(name="id", type="integer", nullable=false, options={"comment" = "identificador de la persona asociado al rol"})
  27 + * @ORM\Id
  28 + * @ORM\GeneratedValue(strategy="IDENTITY")
  29 + * @ORM\SequenceGenerator(sequenceName="rol_id_seq", allocationSize=1, initialValue=1)
  30 + */
  31 + private $id;
  32 +
  33 + /**
  34 + * @var \AppBundle\Entity\TipoPersona
  35 + *
  36 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\TipoPersona")
  37 + * @ORM\JoinColumns({
  38 + * @ORM\JoinColumn(name="id_tipo_persona", referencedColumnName="id", nullable=false)
  39 + * })
  40 + */
  41 + private $idTipoPersona;
  42 +
  43 + /**
  44 + * @var \AppBundle\Entity\Persona
  45 + *
  46 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Persona")
  47 + * @ORM\JoinColumns({
  48 + * @ORM\JoinColumn(name="id_persona", referencedColumnName="id", nullable=false)
  49 + * })
  50 + */
  51 + private $idPersona;
  52 +
  53 +
  54 + /**
  55 + * @var \AppBundle\Entity\AreaPersona
  56 + *
  57 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\AreaPersona")
  58 + * @ORM\JoinColumns({
  59 + * @ORM\JoinColumn(name="id_area_persona", referencedColumnName="id", nullable=false)
  60 + * })
  61 + */
  62 + private $idAreaPersona;
  63 +
  64 +
  65 +
  66 +
  67 +
  68 + /**
  69 + * @var \AppBundle\Entity\Estatus
  70 + *
  71 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Estatus")
  72 + * @ORM\JoinColumns({
  73 + * @ORM\JoinColumn(name="id_estatus", referencedColumnName="id", nullable=false)
  74 + * })
  75 + */
  76 + private $idEstatus;
  77 +
  78 +
  79 +
  80 + /**
  81 + * Get id
  82 + *
  83 + * @return integer
  84 + */
  85 + public function getId()
  86 + {
  87 + return $this->id;
  88 + }
  89 +
  90 + /**
  91 + * Set idTipoPersona
  92 + *
  93 + * @param \AppBundle\Entity\TipoPersona $idTipoPersona
  94 + * @return Rol
  95 + */
  96 + public function setIdTipoPersona(\AppBundle\Entity\TipoPersona $idTipoPersona = null)
  97 + {
  98 + $this->idTipoPersona = $idTipoPersona;
  99 +
  100 + return $this;
  101 + }
  102 +
  103 + /**
  104 + * Get idTipoPersona
  105 + *
  106 + * @return \AppBundle\Entity\TipoPersona
  107 + */
  108 + public function getIdTipoPersona()
  109 + {
  110 + return $this->idTipoPersona;
  111 + }
  112 +
  113 + /**
  114 + * Set idPersona
  115 + *
  116 + * @param \AppBundle\Entity\Persona $idPersona
  117 + * @return Rol
  118 + */
  119 + public function setIdPersona(\AppBundle\Entity\Persona $idPersona = null)
  120 + {
  121 + $this->idPersona = $idPersona;
  122 +
  123 + return $this;
  124 + }
  125 +
  126 + /**
  127 + * Get idPersona
  128 + *
  129 + * @return \AppBundle\Entity\Persona
  130 + */
  131 + public function getIdPersona()
  132 + {
  133 + return $this->idPersona;
  134 + }
  135 +
  136 + /**
  137 + * Set idEstatus
  138 + *
  139 + * @param \AppBundle\Entity\Estatus $idEstatus
  140 + * @return Rol
  141 + */
  142 + public function setIdEstatus(\AppBundle\Entity\Estatus $idEstatus = null)
  143 + {
  144 + $this->idEstatus = $idEstatus;
  145 +
  146 + return $this;
  147 + }
  148 +
  149 + /**
  150 + * Get idEstatus
  151 + *
  152 + * @return \AppBundle\Entity\Estatus
  153 + */
  154 + public function getIdEstatus()
  155 + {
  156 + return $this->idEstatus;
  157 + }
  158 +
  159 + public function __toString(){
  160 +
  161 + return $this->getIdTipoPersona()->getNombre();
  162 +
  163 + }
  164 +
  165 + /**
  166 + * @return AreaPersona
  167 + */
  168 + public function getIdAreaPersona()
  169 + {
  170 + return $this->idAreaPersona;
  171 + }
  172 +
  173 + /**
  174 + * @param AreaPersona $idAreaPersona
  175 + */
  176 + public function setIdAreaPersona($idAreaPersona)
  177 + {
  178 + $this->idAreaPersona = $idAreaPersona;
  179 + }
  180 +
  181 +}
0 182 \ No newline at end of file
... ...
src/AppBundle/Entity/RolInstitucion.php
... ... @@ -0,0 +1,155 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:38 AM
  7 + */
  8 +
  9 +
  10 +namespace AppBundle\Entity;
  11 +
  12 +use Doctrine\ORM\Mapping as ORM;
  13 +
  14 +/**
  15 + * RolInstitucion
  16 + *
  17 + * @ORM\Table(name="rol_institucion", uniqueConstraints={@ORM\UniqueConstraint(name="i_rol_institucion", columns={"id_institucion", "id_rol"})}, indexes={@ORM\Index(name="fki_estatus_rol_institucion", columns={"id_estatus"}), @ORM\Index(name="fki_rol_rol_institucion", columns={"id_rol"}), @ORM\Index(name="IDX_E530B3F2EF433A34", columns={"id_institucion"})})
  18 + * @ORM\Entity
  19 + */
  20 +class RolInstitucion
  21 +{
  22 + /**
  23 + * @var integer
  24 + *
  25 + * @ORM\Column(name="id", type="integer", nullable=false, options={"comment" = "identificador de registro rol institucion"})
  26 + * @ORM\Id
  27 + * @ORM\GeneratedValue(strategy="IDENTITY")
  28 + * @ORM\SequenceGenerator(sequenceName="rol_institucion_id_seq", allocationSize=1, initialValue=1)
  29 + */
  30 + private $id;
  31 +
  32 + /**
  33 + * @var \AppBundle\Entity\Rol
  34 + *
  35 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Rol")
  36 + * @ORM\JoinColumns({
  37 + * @ORM\JoinColumn(name="id_rol", referencedColumnName="id", nullable=false)
  38 + * })
  39 + */
  40 + private $idRol;
  41 +
  42 + /**
  43 + * @var \AppBundle\Entity\Institucion
  44 + *
  45 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Institucion")
  46 + * @ORM\JoinColumns({
  47 + * @ORM\JoinColumn(name="id_institucion", referencedColumnName="id", nullable=false)
  48 + * })
  49 + */
  50 + private $idInstitucion;
  51 +
  52 + /**
  53 + * @var \AppBundle\Entity\Estatus
  54 + *
  55 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\Estatus")
  56 + * @ORM\JoinColumns({
  57 + * @ORM\JoinColumn(name="id_estatus", referencedColumnName="id", nullable=false)
  58 + * })
  59 + */
  60 + private $idEstatus;
  61 +
  62 +
  63 +
  64 + /**
  65 + * Get id
  66 + *
  67 + * @return integer
  68 + */
  69 + public function getId()
  70 + {
  71 + return $this->id;
  72 + }
  73 +
  74 + /**
  75 + * Set idRol
  76 + *
  77 + * @param \AppBundle\Entity\Rol $idRol
  78 + * @return RolInstitucion
  79 + */
  80 + public function setIdRol(\AppBundle\Entity\Rol $idRol = null)
  81 + {
  82 + $this->idRol = $idRol;
  83 +
  84 + return $this;
  85 + }
  86 +
  87 + /**
  88 + * Get idRol
  89 + *
  90 + * @return \AppBundle\Entity\Rol
  91 + */
  92 + public function getIdRol()
  93 + {
  94 + return $this->idRol;
  95 + }
  96 +
  97 + /**
  98 + * Set idInstitucion
  99 + *
  100 + * @param \AppBundle\Entity\Institucion $idInstitucion
  101 + * @return RolInstitucion
  102 + */
  103 + public function setIdInstitucion(\AppBundle\Entity\Institucion $idInstitucion = null)
  104 + {
  105 + $this->idInstitucion = $idInstitucion;
  106 +
  107 + return $this;
  108 + }
  109 +
  110 + /**
  111 + * Get idInstitucion
  112 + *
  113 + * @return \AppBundle\Entity\Institucion
  114 + */
  115 + public function getIdInstitucion()
  116 + {
  117 + return $this->idInstitucion;
  118 + }
  119 +
  120 + /**
  121 + * Set idEstatus
  122 + *
  123 + * @param \AppBundle\Entity\Estatus $idEstatus
  124 + * @return RolInstitucion
  125 + */
  126 + public function setIdEstatus(\AppBundle\Entity\Estatus $idEstatus = null)
  127 + {
  128 + $this->idEstatus = $idEstatus;
  129 +
  130 + return $this;
  131 + }
  132 +
  133 + /**
  134 + * Get idEstatus
  135 + *
  136 + * @return \AppBundle\Entity\Estatus
  137 + */
  138 + public function getIdEstatus()
  139 + {
  140 + return $this->idEstatus;
  141 + }
  142 +
  143 +
  144 + /**
  145 + * Get __toString
  146 + *
  147 + *
  148 + */
  149 + public function __toString()
  150 + {
  151 + return $this->getIdRol()->getIdPersona()->getCedulaPasaporte();
  152 + }
  153 +
  154 +
  155 +}
0 156 \ No newline at end of file
... ...
src/AppBundle/Entity/Role.php
... ... @@ -0,0 +1,154 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:48 AM
  7 + */
  8 +
  9 +
  10 +namespace AppBundle\Entity;
  11 +
  12 +use Doctrine\ORM\Mapping as ORM;
  13 +use Symfony\Component\Security\Core\Role\RoleInterface;
  14 +
  15 +/**
  16 + * Role
  17 + *
  18 + * @ORM\Table(name="role")
  19 + * @ORM\Entity
  20 + */
  21 +class Role implements RoleInterface, \Serializable
  22 +{
  23 + /**
  24 + * @var string
  25 + *
  26 + * @ORM\Column(name="name", type="string", nullable=true)
  27 + */
  28 + protected $name;
  29 +
  30 + /**
  31 + * @var integer
  32 + *
  33 + * @ORM\Column(name="id", type="integer")
  34 + * @ORM\Id
  35 + * @ORM\GeneratedValue(strategy="IDENTITY")
  36 + * @ORM\SequenceGenerator(sequenceName="role_id_seq", allocationSize=1, initialValue=1)
  37 + */
  38 + protected $id;
  39 +
  40 + /**
  41 + * @var \Doctrine\Common\Collections\Collection
  42 + *
  43 + * @ORM\ManyToMany(targetEntity="AppBundle\Entity\Usuarios", mappedBy="rol")
  44 + */
  45 + protected $user;
  46 +
  47 + /**
  48 + * Constructor
  49 + */
  50 + public function __construct()
  51 + {
  52 + $this->user = new \Doctrine\Common\Collections\ArrayCollection();
  53 + }
  54 +
  55 +
  56 + /**
  57 + * Set name
  58 + *
  59 + * @param string $name
  60 + * @return Role
  61 + */
  62 + public function setName($name)
  63 + {
  64 + $this->name = $name;
  65 +
  66 + return $this;
  67 + }
  68 +
  69 + /**
  70 + * Get name
  71 + *
  72 + * @return string
  73 + */
  74 + public function getName()
  75 + {
  76 + return $this->name;
  77 + }
  78 +
  79 + /**
  80 + * Get id
  81 + *
  82 + * @return integer
  83 + */
  84 + public function getId()
  85 + {
  86 + return $this->id;
  87 + }
  88 +
  89 + /**
  90 + * Add user
  91 + *
  92 + * @param \AppBundle\Entity\Usuarios $user
  93 + * @return Role
  94 + */
  95 + public function addUser(\AppBundle\Entity\Usuarios $user)
  96 + {
  97 + $this->user[] = $user;
  98 +
  99 + return $this;
  100 + }
  101 +
  102 + /**
  103 + * Remove user
  104 + *
  105 + * @param \AppBundle\Entity\Usuarios $user
  106 + */
  107 + public function removeUser(\AppBundle\Entity\Usuarios $user)
  108 + {
  109 + $this->user->removeElement($user);
  110 + }
  111 +
  112 + /**
  113 + * Get user
  114 + *
  115 + * @return \Doctrine\Common\Collections\Collection
  116 + */
  117 + public function getUser()
  118 + {
  119 + return $this->user;
  120 + }
  121 +
  122 + public function getRole() {
  123 + return $this->getName();
  124 + }
  125 +
  126 + public function __toString() {
  127 + return $this->getRole();
  128 + }
  129 +
  130 + /**
  131 + * @see \Serializable::serialize()
  132 + */
  133 + public function serialize()
  134 + {
  135 + /*
  136 + * ! Don't serialize $users field !
  137 + */
  138 + return \serialize(array(
  139 + $this->id,
  140 + $this->name
  141 + ));
  142 + }
  143 +
  144 + /**
  145 + * @see \Serializable::unserialize()
  146 + */
  147 + public function unserialize($serialized)
  148 + {
  149 + list(
  150 + $this->id,
  151 + $this->name
  152 + ) = \unserialize($serialized);
  153 + }
  154 +}
0 155 \ No newline at end of file
... ...
src/AppBundle/Entity/TipoInstitucion.php
... ... @@ -0,0 +1,71 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:40 AM
  7 + */
  8 +
  9 +
  10 +namespace AppBundle\Entity;
  11 +
  12 +use Doctrine\ORM\Mapping as ORM;
  13 +
  14 +/**
  15 + * TipoInstitucion
  16 + *
  17 + * @ORM\Table(name="tipo_institucion", uniqueConstraints={@ORM\UniqueConstraint(name="uq_tipo_institucion", columns={"nombre"})})
  18 + * @ORM\Entity
  19 + */
  20 +class TipoInstitucion
  21 +{
  22 + /**
  23 + * @var string
  24 + *
  25 + * @ORM\Column(name="nombre", type="string", length=30, nullable=false, options={"comment" = "identificador del tipo de institucion"})
  26 + */
  27 + private $nombre;
  28 +
  29 + /**
  30 + * @var integer
  31 + *
  32 + * @ORM\Column(name="id", type="integer", nullable=false, options={"comment" = "identificador del tipo de institucion"})
  33 + * @ORM\Id
  34 + * @ORM\GeneratedValue(strategy="IDENTITY")
  35 + * @ORM\SequenceGenerator(sequenceName="tipo_institucion_id_seq", allocationSize=1, initialValue=1)
  36 + */
  37 + private $id;
  38 +
  39 + /**
  40 + * Set nombre
  41 + *
  42 + * @param string $nombre
  43 + * @return TipoInstitucion
  44 + */
  45 + public function setNombre($nombre)
  46 + {
  47 + $this->nombre = $nombre;
  48 +
  49 + return $this;
  50 + }
  51 +
  52 + /**
  53 + * Get nombre
  54 + *
  55 + * @return string
  56 + */
  57 + public function getNombre()
  58 + {
  59 + return $this->nombre;
  60 + }
  61 +
  62 + /**
  63 + * Get id
  64 + *
  65 + * @return integer
  66 + */
  67 + public function getId()
  68 + {
  69 + return $this->id;
  70 + }
  71 +}
0 72 \ No newline at end of file
... ...
src/AppBundle/Entity/TipoPersona.php
... ... @@ -0,0 +1,87 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:07 AM
  7 + */
  8 +
  9 +
  10 +
  11 +namespace AppBundle\Entity;
  12 +
  13 +use Doctrine\ORM\Mapping as ORM;
  14 +
  15 +/**
  16 + * TipoPersona
  17 + *
  18 + * @ORM\Table(name="tipo_persona", uniqueConstraints={@ORM\UniqueConstraint(name="tipo_persona_nombre_key", columns={"nombre"})})
  19 + * @ORM\Entity
  20 + */
  21 +class TipoPersona
  22 +{
  23 + /**
  24 + * @var string
  25 + *
  26 + * @ORM\Column(name="nombre", type="string", length=80, nullable=false, options={"comment" = "identificador del tipo de persona"})
  27 + */
  28 + private $nombre;
  29 +
  30 + /**
  31 + * @var integer
  32 + *
  33 + * @ORM\Column(name="id", type="integer",nullable=false, options={"comment" = "nombre del tipo de persona"})
  34 + * @ORM\Id
  35 + * @ORM\GeneratedValue(strategy="IDENTITY")
  36 + * @ORM\SequenceGenerator(sequenceName="tipo_persona_id_seq", allocationSize=1, initialValue=1)
  37 + */
  38 + private $id;
  39 +
  40 +
  41 +
  42 + /**
  43 + * Set nombre
  44 + *
  45 + * @param string $nombre
  46 + * @return TipoPersona
  47 + */
  48 + public function setNombre($nombre)
  49 + {
  50 + $this->nombre = $nombre;
  51 +
  52 + return $this;
  53 + }
  54 +
  55 + /**
  56 + * Get nombre
  57 + *
  58 + * @return string
  59 + */
  60 + public function getNombre()
  61 + {
  62 + return $this->nombre;
  63 + }
  64 +
  65 + /**
  66 + * Get id
  67 + *
  68 + * @return integer
  69 + */
  70 + public function getId()
  71 + {
  72 + return $this->id;
  73 + }
  74 +
  75 +
  76 + /**
  77 + * Get nombre
  78 + *
  79 + * @return string
  80 + */
  81 + public function __toString()
  82 + {
  83 + return $this->nombre;
  84 + }
  85 +
  86 +
  87 +}
0 88 \ No newline at end of file
... ...
src/AppBundle/Entity/Usuarios.php
... ... @@ -0,0 +1,274 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 08:36 AM
  7 + */
  8 +
  9 +
  10 +
  11 +namespace AppBundle\Entity;
  12 +
  13 +use Doctrine\ORM\Mapping as ORM;
  14 +use Symfony\Component\Validator\Constraints as Assert;
  15 +use Symfony\Component\Security\Core\User\UserInterface;
  16 +use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  17 +
  18 +/**
  19 + * Usuarios
  20 + *
  21 + * @ORM\Table(name="usuarios", uniqueConstraints={@ORM\UniqueConstraint(name="usuarios_id_rol_institucion_key", columns={"id_rol_institucion"})})
  22 + * @ORM\Entity(repositoryClass="UsuariosRepository")
  23 + * @UniqueEntity(fields="username", message="Username already taken")
  24 + */
  25 +class Usuarios implements UserInterface, \Serializable
  26 +{
  27 + /**
  28 + * @var string
  29 + *
  30 + * @ORM\Column(name="username", type="string", length=255, nullable=false, options={"comment" = "nombre de usuariro"})
  31 + */
  32 + protected $username;
  33 +
  34 + /**
  35 + * @var string
  36 + *
  37 + * @ORM\Column(name="password", type="string", length=255, nullable=false, options={"comment" = "contraseña encryptada"})
  38 + */
  39 + protected $password;
  40 +
  41 + /**
  42 + * @Assert\NotBlank()
  43 + * @Assert\Length(max=4096)
  44 + */
  45 + private $plainPassword;
  46 +
  47 +
  48 +
  49 + /**
  50 + * @var integer
  51 + *
  52 + * @ORM\Column(name="id", type="integer", options={"comment" = "identificador de los usuarios"}, nullable=false)
  53 + * @ORM\Id
  54 + * @ORM\GeneratedValue(strategy="IDENTITY")
  55 + * @ORM\SequenceGenerator(sequenceName="usuarios_id_seq", allocationSize=1, initialValue=1)
  56 + */
  57 + protected $id;
  58 +
  59 + /**
  60 + * @var \AppBundle\Entity\RolInstitucion
  61 + *
  62 + * @ORM\ManyToOne(targetEntity="AppBundle\Entity\RolInstitucion")
  63 + * @ORM\JoinColumns({
  64 + * @ORM\JoinColumn(name="id_rol_institucion", referencedColumnName="id", nullable=false)
  65 + * })
  66 + */
  67 + protected $idRolInstitucion;
  68 +
  69 + /**
  70 + * @var \Doctrine\Common\Collections\Collection
  71 + *
  72 + * @ORM\ManyToMany(targetEntity="AppBundle\Entity\Role", inversedBy="user")
  73 + * @ORM\JoinTable(name="user_role",
  74 + * joinColumns={
  75 + * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false)
  76 + * },
  77 + * inverseJoinColumns={
  78 + * @ORM\JoinColumn(name="rol_id", referencedColumnName="id", nullable=false)
  79 + * }
  80 + * )
  81 + */
  82 + protected $rol;
  83 +
  84 + /**
  85 + * Constructor
  86 + */
  87 + public function __construct()
  88 + {
  89 + $this->rol = new \Doctrine\Common\Collections\ArrayCollection();
  90 + }
  91 +
  92 +
  93 + /**
  94 + * Set username
  95 + *
  96 + * @param string $username
  97 + * @return Usuarios
  98 + */
  99 + public function setUsername($username)
  100 + {
  101 + $this->username = $username;
  102 +
  103 + return $this;
  104 + }
  105 +
  106 + /**
  107 + * Get username
  108 + *
  109 + * @return string
  110 + */
  111 + public function getUsername()
  112 + {
  113 + return $this->username;
  114 + }
  115 +
  116 + /**
  117 + * Set password
  118 + *
  119 + * @param string $password
  120 + * @return Usuarios
  121 + */
  122 + public function setPassword($password)
  123 + {
  124 + $this->password = $password;
  125 +
  126 + return $this;
  127 + }
  128 +
  129 + /**
  130 + * Get password
  131 + *
  132 + * @return string
  133 + */
  134 + public function getPassword()
  135 + {
  136 + return $this->password;
  137 + }
  138 +
  139 +
  140 + /**
  141 + * Get id
  142 + *
  143 + * @return integer
  144 + */
  145 + public function getId()
  146 + {
  147 + return $this->id;
  148 + }
  149 +
  150 + /**
  151 + * Set idRolInstitucion
  152 + *
  153 + * @param \AppBundle\Entity\RolInstitucion $idRolInstitucion
  154 + * @return Usuarios
  155 + */
  156 + public function setIdRolInstitucion(\AppBundle\Entity\RolInstitucion $idRolInstitucion = null)
  157 + {
  158 + $this->idRolInstitucion = $idRolInstitucion;
  159 +
  160 + return $this;
  161 + }
  162 +
  163 + /**
  164 + * Get idRolInstitucion
  165 + *
  166 + * @return \AppBundle\Entity\RolInstitucion
  167 + */
  168 + public function getIdRolInstitucion()
  169 + {
  170 + return $this->idRolInstitucion;
  171 + }
  172 +
  173 + /**
  174 + * Add rol
  175 + *
  176 + * @param \AppBundle\Entity\Role $rol
  177 + * @return Role
  178 + */
  179 + public function addRol(\AppBundle\Entity\Role $rol)
  180 + {
  181 + $this->rol[] = $rol;
  182 +
  183 + return $this;
  184 + }
  185 +
  186 + /**
  187 + * Remove rol
  188 + *
  189 + * @param \AppBundle\Entity\Role $rol
  190 + */
  191 + public function removeRol(\AppBundle\Entity\Role $rol)
  192 + {
  193 + $this->rol->removeElement($rol);
  194 + }
  195 +
  196 + /**
  197 + * Get rol
  198 + *
  199 + * @return \Doctrine\Common\Collections\Collection
  200 + */
  201 + public function getRol()
  202 + {
  203 + return $this->rol;
  204 + }
  205 +
  206 +
  207 + public function getRoles()
  208 + {
  209 + return $this->rol->toArray(); /*IMPORTANTE: el mecanismo de seguridad de Sf2 requiere ésto como un array*/
  210 + }
  211 +
  212 + public function equals(UserInterface $user) {
  213 + return md5($this->getUsername()) == md5($user->getUsername());
  214 +
  215 + }
  216 +
  217 + /**
  218 + * Erases the user credentials.
  219 + */
  220 + public function eraseCredentials() {
  221 +
  222 + }
  223 +
  224 + public function serialize()
  225 + {
  226 + /*
  227 + * ! Don't serialize $roles field !
  228 + */
  229 + return \serialize(array(
  230 + $this->id,
  231 + $this->username,
  232 + $this->password,
  233 + ));
  234 + }
  235 +
  236 + /**
  237 + * @see \Serializable::unserialize()
  238 + */
  239 + public function unserialize($serialized)
  240 + {
  241 + list (
  242 + $this->id,
  243 + $this->username,
  244 + $this->password,
  245 + ) = \unserialize($serialized);
  246 + }
  247 +
  248 + public function __toString() {
  249 + return $this->getuserName();
  250 + }
  251 +
  252 + public function getPlainPassword()
  253 + {
  254 + return $this->plainPassword;
  255 + }
  256 +
  257 + public function setPlainPassword($password)
  258 + {
  259 + $this->plainPassword = $password;
  260 + }
  261 +
  262 +
  263 + /**
  264 + * Returns the salt that was originally used to encode the password.
  265 + *
  266 + * This can return null if the password was not encoded using a salt.
  267 + *
  268 + * @return string|null The salt
  269 + */
  270 + public function getSalt()
  271 + {
  272 + // TODO: Implement getSalt() method.
  273 + }
  274 +}
0 275 \ No newline at end of file
... ...
src/AppBundle/Entity/UsuariosRepository.php
... ... @@ -0,0 +1,15 @@
  1 +<?php
  2 +
  3 +namespace AppBundle\Entity;
  4 +
  5 +use Doctrine\ORM\EntityRepository;
  6 +
  7 +/**
  8 + * UsuariosRepository
  9 + *
  10 + * This class was generated by the PhpStorm "Php Annotations" Plugin. Add your own custom
  11 + * repository methods below.
  12 + */
  13 +class UsuariosRepository extends EntityRepository
  14 +{
  15 +}
... ...
src/AppBundle/Form/RoleType.php
... ... @@ -0,0 +1,32 @@
  1 +<?php
  2 +
  3 +namespace AppBundle\Form;
  4 +
  5 +use Symfony\Component\Form\AbstractType;
  6 +use Symfony\Component\Form\FormBuilderInterface;
  7 +use Symfony\Component\OptionsResolver\OptionsResolver;
  8 +
  9 +class RoleType extends AbstractType
  10 +{
  11 + /**
  12 + * @param FormBuilderInterface $builder
  13 + * @param array $options
  14 + */
  15 + public function buildForm(FormBuilderInterface $builder, array $options)
  16 + {
  17 + $builder
  18 + ->add('name')
  19 + ->add('user')
  20 + ;
  21 + }
  22 +
  23 + /**
  24 + * @param OptionsResolver $resolver
  25 + */
  26 + public function configureOptions(OptionsResolver $resolver)
  27 + {
  28 + $resolver->setDefaults(array(
  29 + 'data_class' => 'AppBundle\Entity\Role'
  30 + ));
  31 + }
  32 +}
... ...
src/AppBundle/Form/UserType.php
... ... @@ -0,0 +1,55 @@
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: ubv-cipee
  5 + * Date: 29/06/16
  6 + * Time: 09:07 AM
  7 + */
  8 +
  9 +namespace AppBundle\Form;
  10 +
  11 +use Symfony\Component\Form\AbstractType;
  12 +use Symfony\Component\Form\FormBuilderInterface;
  13 +use Symfony\Component\OptionsResolver\OptionsResolver;
  14 +use Symfony\Component\Form\Extension\Core\Type\TextType;
  15 +use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
  16 +use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  17 +use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  18 +
  19 +class UserType extends AbstractType
  20 +{
  21 + public function buildForm(FormBuilderInterface $builder, array $options)
  22 + {
  23 + $builder
  24 + ->add('idRolInstitucion', EntityType::class, array(
  25 + // query choices from this entity
  26 + 'class' => 'AppBundle:RolInstitucion',
  27 +
  28 + // use the User.username property as the visible option string
  29 + 'choice_label' => 'id',
  30 +
  31 + ))
  32 + ->add('rol', EntityType::class, array(
  33 + // query choices from this entity
  34 + 'class' => 'AppBundle:Role',
  35 +
  36 + // use the User.username property as the visible option string
  37 + 'choice_label' => 'id',
  38 +
  39 + ))
  40 + ->add('username', TextType::class)
  41 + ->add('plainPassword', RepeatedType::class, array(
  42 + 'type' => PasswordType::class,
  43 + 'first_options' => array('label' => 'Password'),
  44 + 'second_options' => array('label' => 'Repeat Password'),
  45 + )
  46 + );
  47 + }
  48 +
  49 + public function configureOptions(OptionsResolver $resolver)
  50 + {
  51 + $resolver->setDefaults(array(
  52 + 'data_class' => 'AppBundle\Entity\Usuarios',
  53 + ));
  54 + }
  55 +}
0 56 \ No newline at end of file
... ...
src/AppBundle/Form/UsuariosType.php
... ... @@ -0,0 +1,40 @@
  1 +<?php
  2 +
  3 +namespace AppBundle\Form;
  4 +
  5 +use Symfony\Component\Form\AbstractType;
  6 +use Symfony\Component\Form\FormBuilderInterface;
  7 +use Symfony\Component\OptionsResolver\OptionsResolver;
  8 +use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
  9 +use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  10 +
  11 +class UsuariosType extends AbstractType
  12 +{
  13 + /**
  14 + * @param FormBuilderInterface $builder
  15 + * @param array $options
  16 + */
  17 + public function buildForm(FormBuilderInterface $builder, array $options)
  18 + {
  19 + $builder
  20 + ->add('username')
  21 + ->add('idRolInstitucion')
  22 + ->add('rol')
  23 + ->add('plainPassword', RepeatedType::class, array(
  24 + 'type' => PasswordType::class,
  25 + 'first_options' => array('label' => 'Password'),
  26 + 'second_options' => array('label' => 'Repeat Password'),
  27 + ))
  28 + ;
  29 + }
  30 +
  31 + /**
  32 + * @param OptionsResolver $resolver
  33 + */
  34 + public function configureOptions(OptionsResolver $resolver)
  35 + {
  36 + $resolver->setDefaults(array(
  37 + 'data_class' => 'AppBundle\Entity\Usuarios'
  38 + ));
  39 + }
  40 +}
... ...
src/AppBundle/Tests/Controller/DefaultControllerTest.php
... ... @@ -0,0 +1,18 @@
  1 +<?php
  2 +
  3 +namespace AppBundle\Tests\Controller;
  4 +
  5 +use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
  6 +
  7 +class DefaultControllerTest extends WebTestCase
  8 +{
  9 + public function testIndex()
  10 + {
  11 + $client = static::createClient();
  12 +
  13 + $crawler = $client->request('GET', '/');
  14 +
  15 + $this->assertEquals(200, $client->getResponse()->getStatusCode());
  16 + $this->assertContains('Welcome to Symfony', $crawler->filter('#container h1')->text());
  17 + }
  18 +}
... ...
src/AppBundle/Tests/Controller/RoleControllerTest.php
... ... @@ -0,0 +1,55 @@
  1 +<?php
  2 +
  3 +namespace AppBundle\Tests\Controller;
  4 +
  5 +use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
  6 +
  7 +class RoleControllerTest extends WebTestCase
  8 +{
  9 + /*
  10 + public function testCompleteScenario()
  11 + {
  12 + // Create a new client to browse the application
  13 + $client = static::createClient();
  14 +
  15 + // Create a new entry in the database
  16 + $crawler = $client->request('GET', '/role/');
  17 + $this->assertEquals(200, $client->getResponse()->getStatusCode(), "Unexpected HTTP status code for GET /role/");
  18 + $crawler = $client->click($crawler->selectLink('Create a new entry')->link());
  19 +
  20 + // Fill in the form and submit it
  21 + $form = $crawler->selectButton('Create')->form(array(
  22 + 'appbundle_role[field_name]' => 'Test',
  23 + // ... other fields to fill
  24 + ));
  25 +
  26 + $client->submit($form);
  27 + $crawler = $client->followRedirect();
  28 +
  29 + // Check data in the show view
  30 + $this->assertGreaterThan(0, $crawler->filter('td:contains("Test")')->count(), 'Missing element td:contains("Test")');
  31 +
  32 + // Edit the entity
  33 + $crawler = $client->click($crawler->selectLink('Edit')->link());
  34 +
  35 + $form = $crawler->selectButton('Update')->form(array(
  36 + 'appbundle_role[field_name]' => 'Foo',
  37 + // ... other fields to fill
  38 + ));
  39 +
  40 + $client->submit($form);
  41 + $crawler = $client->followRedirect();
  42 +
  43 + // Check the element contains an attribute with value equals "Foo"
  44 + $this->assertGreaterThan(0, $crawler->filter('[value="Foo"]')->count(), 'Missing element [value="Foo"]');
  45 +
  46 + // Delete the entity
  47 + $client->submit($crawler->selectButton('Delete')->form());
  48 + $crawler = $client->followRedirect();
  49 +
  50 + // Check the entity has been delete on the list
  51 + $this->assertNotRegExp('/Foo/', $client->getResponse()->getContent());
  52 + }
  53 +
  54 + */
  55 +}
... ...
src/AppBundle/Tests/Controller/UsuariosControllerTest.php
... ... @@ -0,0 +1,55 @@
  1 +<?php
  2 +
  3 +namespace AppBundle\Tests\Controller;
  4 +
  5 +use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
  6 +
  7 +class UsuariosControllerTest extends WebTestCase
  8 +{
  9 + /*
  10 + public function testCompleteScenario()
  11 + {
  12 + // Create a new client to browse the application
  13 + $client = static::createClient();
  14 +
  15 + // Create a new entry in the database
  16 + $crawler = $client->request('GET', '/admin/usuarios/');
  17 + $this->assertEquals(200, $client->getResponse()->getStatusCode(), "Unexpected HTTP status code for GET /admin/usuarios/");
  18 + $crawler = $client->click($crawler->selectLink('Create a new entry')->link());
  19 +
  20 + // Fill in the form and submit it
  21 + $form = $crawler->selectButton('Create')->form(array(
  22 + 'appbundle_usuarios[field_name]' => 'Test',
  23 + // ... other fields to fill
  24 + ));
  25 +
  26 + $client->submit($form);
  27 + $crawler = $client->followRedirect();
  28 +
  29 + // Check data in the show view
  30 + $this->assertGreaterThan(0, $crawler->filter('td:contains("Test")')->count(), 'Missing element td:contains("Test")');
  31 +
  32 + // Edit the entity
  33 + $crawler = $client->click($crawler->selectLink('Edit')->link());
  34 +
  35 + $form = $crawler->selectButton('Update')->form(array(
  36 + 'appbundle_usuarios[field_name]' => 'Foo',
  37 + // ... other fields to fill
  38 + ));
  39 +
  40 + $client->submit($form);
  41 + $crawler = $client->followRedirect();
  42 +
  43 + // Check the element contains an attribute with value equals "Foo"
  44 + $this->assertGreaterThan(0, $crawler->filter('[value="Foo"]')->count(), 'Missing element [value="Foo"]');
  45 +
  46 + // Delete the entity
  47 + $client->submit($crawler->selectButton('Delete')->form());
  48 + $crawler = $client->followRedirect();
  49 +
  50 + // Check the entity has been delete on the list
  51 + $this->assertNotRegExp('/Foo/', $client->getResponse()->getContent());
  52 + }
  53 +
  54 + */
  55 +}
... ...
web/.htaccess
... ... @@ -0,0 +1,68 @@
  1 +# Use the front controller as index file. It serves as a fallback solution when
  2 +# every other rewrite/redirect fails (e.g. in an aliased environment without
  3 +# mod_rewrite). Additionally, this reduces the matching process for the
  4 +# start page (path "/") because otherwise Apache will apply the rewriting rules
  5 +# to each configured DirectoryIndex file (e.g. index.php, index.html, index.pl).
  6 +DirectoryIndex app.php
  7 +
  8 +# By default, Apache does not evaluate symbolic links if you did not enable this
  9 +# feature in your server configuration. Uncomment the following line if you
  10 +# install assets as symlinks or if you experience problems related to symlinks
  11 +# when compiling LESS/Sass/CoffeScript assets.
  12 +# Options FollowSymlinks
  13 +
  14 +# Disabling MultiViews prevents unwanted negotiation, e.g. "/app" should not resolve
  15 +# to the front controller "/app.php" but be rewritten to "/app.php/app".
  16 +<IfModule mod_negotiation.c>
  17 + Options -MultiViews
  18 +</IfModule>
  19 +
  20 +<IfModule mod_rewrite.c>
  21 + RewriteEngine On
  22 +
  23 + # Determine the RewriteBase automatically and set it as environment variable.
  24 + # If you are using Apache aliases to do mass virtual hosting or installed the
  25 + # project in a subdirectory, the base path will be prepended to allow proper
  26 + # resolution of the app.php file and to redirect to the correct URI. It will
  27 + # work in environments without path prefix as well, providing a safe, one-size
  28 + # fits all solution. But as you do not need it in this case, you can comment
  29 + # the following 2 lines to eliminate the overhead.
  30 + RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
  31 + RewriteRule ^(.*) - [E=BASE:%1]
  32 +
  33 + # Sets the HTTP_AUTHORIZATION header removed by apache
  34 + RewriteCond %{HTTP:Authorization} .
  35 + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
  36 +
  37 + # Redirect to URI without front controller to prevent duplicate content
  38 + # (with and without `/app.php`). Only do this redirect on the initial
  39 + # rewrite by Apache and not on subsequent cycles. Otherwise we would get an
  40 + # endless redirect loop (request -> rewrite to front controller ->
  41 + # redirect -> request -> ...).
  42 + # So in case you get a "too many redirects" error or you always get redirected
  43 + # to the start page because your Apache does not expose the REDIRECT_STATUS
  44 + # environment variable, you have 2 choices:
  45 + # - disable this feature by commenting the following 2 lines or
  46 + # - use Apache >= 2.3.9 and replace all L flags by END flags and remove the
  47 + # following RewriteCond (best solution)
  48 + RewriteCond %{ENV:REDIRECT_STATUS} ^$
  49 + RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
  50 +
  51 + # If the requested filename exists, simply serve it.
  52 + # We only want to let Apache serve files and not directories.
  53 + RewriteCond %{REQUEST_FILENAME} -f
  54 + RewriteRule .? - [L]
  55 +
  56 + # Rewrite all other queries to the front controller.
  57 + RewriteRule .? %{ENV:BASE}/app.php [L]
  58 +</IfModule>
  59 +
  60 +<IfModule !mod_rewrite.c>
  61 + <IfModule mod_alias.c>
  62 + # When mod_rewrite is not available, we instruct a temporary redirect of
  63 + # the start page to the front controller explicitly so that the website
  64 + # and the generated links can still be used.
  65 + RedirectMatch 302 ^/$ /app.php/
  66 + # RedirectTemp cannot be used instead
  67 + </IfModule>
  68 +</IfModule>
... ...
web/app.php
... ... @@ -0,0 +1,20 @@
  1 +<?php
  2 +
  3 +use Symfony\Component\HttpFoundation\Request;
  4 +
  5 +/**
  6 + * @var Composer\Autoload\ClassLoader
  7 + */
  8 +$loader = require __DIR__.'/../app/autoload.php';
  9 +include_once __DIR__.'/../app/bootstrap.php.cache';
  10 +
  11 +$kernel = new AppKernel('prod', false);
  12 +$kernel->loadClassCache();
  13 +//$kernel = new AppCache($kernel);
  14 +
  15 +// When using the HttpCache, you need to call the method in your front controller instead of relying on the configuration parameter
  16 +//Request::enableHttpMethodParameterOverride();
  17 +$request = Request::createFromGlobals();
  18 +$response = $kernel->handle($request);
  19 +$response->send();
  20 +$kernel->terminate($request, $response);
... ...
web/app_dev.php
... ... @@ -0,0 +1,32 @@
  1 +<?php
  2 +
  3 +use Symfony\Component\HttpFoundation\Request;
  4 +use Symfony\Component\Debug\Debug;
  5 +
  6 +// If you don't want to setup permissions the proper way, just uncomment the following PHP line
  7 +// read http://symfony.com/doc/current/book/installation.html#checking-symfony-application-configuration-and-setup
  8 +// for more information
  9 +//umask(0000);
  10 +
  11 +// This check prevents access to debug front controllers that are deployed by accident to production servers.
  12 +// Feel free to remove this, extend it, or make something more sophisticated.
  13 +if (isset($_SERVER['HTTP_CLIENT_IP'])
  14 + || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
  15 + || !(in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1')) || php_sapi_name() === 'cli-server')
  16 +) {
  17 + header('HTTP/1.0 403 Forbidden');
  18 + exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
  19 +}
  20 +
  21 +/**
  22 + * @var Composer\Autoload\ClassLoader $loader
  23 + */
  24 +$loader = require __DIR__.'/../app/autoload.php';
  25 +Debug::enable();
  26 +
  27 +$kernel = new AppKernel('dev', true);
  28 +$kernel->loadClassCache();
  29 +$request = Request::createFromGlobals();
  30 +$response = $kernel->handle($request);
  31 +$response->send();
  32 +$kernel->terminate($request, $response);
... ...
web/apple-touch-icon.png

10.5 KB

web/assets/vendor/bootstrap/.bower.json
... ... @@ -0,0 +1,45 @@
  1 +{
  2 + "name": "bootstrap",
  3 + "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
  4 + "keywords": [
  5 + "css",
  6 + "js",
  7 + "less",
  8 + "mobile-first",
  9 + "responsive",
  10 + "front-end",
  11 + "framework",
  12 + "web"
  13 + ],
  14 + "homepage": "http://getbootstrap.com",
  15 + "license": "MIT",
  16 + "moduleType": "globals",
  17 + "main": [
  18 + "less/bootstrap.less",
  19 + "dist/js/bootstrap.js"
  20 + ],
  21 + "ignore": [
  22 + "/.*",
  23 + "_config.yml",
  24 + "CNAME",
  25 + "composer.json",
  26 + "CONTRIBUTING.md",
  27 + "docs",
  28 + "js/tests",
  29 + "test-infra"
  30 + ],
  31 + "dependencies": {
  32 + "jquery": "1.9.1 - 2"
  33 + },
  34 + "version": "3.3.6",
  35 + "_release": "3.3.6",
  36 + "_resolution": {
  37 + "type": "version",
  38 + "tag": "v3.3.6",
  39 + "commit": "81df608a40bf0629a1dc08e584849bb1e43e0b7a"
  40 + },
  41 + "_source": "https://github.com/twbs/bootstrap.git",
  42 + "_target": "^3.3.6",
  43 + "_originalSource": "bootstrap",
  44 + "_direct": true
  45 +}
0 46 \ No newline at end of file
... ...
web/assets/vendor/bootstrap/CHANGELOG.md
... ... @@ -0,0 +1,5 @@
  1 +Bootstrap uses [GitHub's Releases feature](https://github.com/blog/1547-release-your-software) for its changelogs.
  2 +
  3 +See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap.
  4 +
  5 +Release announcement posts on [the official Bootstrap blog](http://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release.
... ...
web/assets/vendor/bootstrap/Gruntfile.js
... ... @@ -0,0 +1,533 @@
  1 +/*!
  2 + * Bootstrap's Gruntfile
  3 + * http://getbootstrap.com
  4 + * Copyright 2013-2015 Twitter, Inc.
  5 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  6 + */
  7 +
  8 +module.exports = function (grunt) {
  9 + 'use strict';
  10 +
  11 + // Force use of Unix newlines
  12 + grunt.util.linefeed = '\n';
  13 +
  14 + RegExp.quote = function (string) {
  15 + return string.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&');
  16 + };
  17 +
  18 + var fs = require('fs');
  19 + var path = require('path');
  20 + var npmShrinkwrap = require('npm-shrinkwrap');
  21 + var generateGlyphiconsData = require('./grunt/bs-glyphicons-data-generator.js');
  22 + var BsLessdocParser = require('./grunt/bs-lessdoc-parser.js');
  23 + var getLessVarsData = function () {
  24 + var filePath = path.join(__dirname, 'less/variables.less');
  25 + var fileContent = fs.readFileSync(filePath, { encoding: 'utf8' });
  26 + var parser = new BsLessdocParser(fileContent);
  27 + return { sections: parser.parseFile() };
  28 + };
  29 + var generateRawFiles = require('./grunt/bs-raw-files-generator.js');
  30 + var generateCommonJSModule = require('./grunt/bs-commonjs-generator.js');
  31 + var configBridge = grunt.file.readJSON('./grunt/configBridge.json', { encoding: 'utf8' });
  32 +
  33 + Object.keys(configBridge.paths).forEach(function (key) {
  34 + configBridge.paths[key].forEach(function (val, i, arr) {
  35 + arr[i] = path.join('./docs/assets', val);
  36 + });
  37 + });
  38 +
  39 + // Project configuration.
  40 + grunt.initConfig({
  41 +
  42 + // Metadata.
  43 + pkg: grunt.file.readJSON('package.json'),
  44 + banner: '/*!\n' +
  45 + ' * Bootstrap v<%= pkg.version %> (<%= pkg.homepage %>)\n' +
  46 + ' * Copyright 2011-<%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
  47 + ' * Licensed under the <%= pkg.license %> license\n' +
  48 + ' */\n',
  49 + jqueryCheck: configBridge.config.jqueryCheck.join('\n'),
  50 + jqueryVersionCheck: configBridge.config.jqueryVersionCheck.join('\n'),
  51 +
  52 + // Task configuration.
  53 + clean: {
  54 + dist: 'dist',
  55 + docs: 'docs/dist'
  56 + },
  57 +
  58 + jshint: {
  59 + options: {
  60 + jshintrc: 'js/.jshintrc'
  61 + },
  62 + grunt: {
  63 + options: {
  64 + jshintrc: 'grunt/.jshintrc'
  65 + },
  66 + src: ['Gruntfile.js', 'package.js', 'grunt/*.js']
  67 + },
  68 + core: {
  69 + src: 'js/*.js'
  70 + },
  71 + test: {
  72 + options: {
  73 + jshintrc: 'js/tests/unit/.jshintrc'
  74 + },
  75 + src: 'js/tests/unit/*.js'
  76 + },
  77 + assets: {
  78 + src: ['docs/assets/js/src/*.js', 'docs/assets/js/*.js', '!docs/assets/js/*.min.js']
  79 + }
  80 + },
  81 +
  82 + jscs: {
  83 + options: {
  84 + config: 'js/.jscsrc'
  85 + },
  86 + grunt: {
  87 + src: '<%= jshint.grunt.src %>'
  88 + },
  89 + core: {
  90 + src: '<%= jshint.core.src %>'
  91 + },
  92 + test: {
  93 + src: '<%= jshint.test.src %>'
  94 + },
  95 + assets: {
  96 + options: {
  97 + requireCamelCaseOrUpperCaseIdentifiers: null
  98 + },
  99 + src: '<%= jshint.assets.src %>'
  100 + }
  101 + },
  102 +
  103 + concat: {
  104 + options: {
  105 + banner: '<%= banner %>\n<%= jqueryCheck %>\n<%= jqueryVersionCheck %>',
  106 + stripBanners: false
  107 + },
  108 + bootstrap: {
  109 + src: [
  110 + 'js/transition.js',
  111 + 'js/alert.js',
  112 + 'js/button.js',
  113 + 'js/carousel.js',
  114 + 'js/collapse.js',
  115 + 'js/dropdown.js',
  116 + 'js/modal.js',
  117 + 'js/tooltip.js',
  118 + 'js/popover.js',
  119 + 'js/scrollspy.js',
  120 + 'js/tab.js',
  121 + 'js/affix.js'
  122 + ],
  123 + dest: 'dist/js/<%= pkg.name %>.js'
  124 + }
  125 + },
  126 +
  127 + uglify: {
  128 + options: {
  129 + compress: {
  130 + warnings: false
  131 + },
  132 + mangle: true,
  133 + preserveComments: 'some'
  134 + },
  135 + core: {
  136 + src: '<%= concat.bootstrap.dest %>',
  137 + dest: 'dist/js/<%= pkg.name %>.min.js'
  138 + },
  139 + customize: {
  140 + src: configBridge.paths.customizerJs,
  141 + dest: 'docs/assets/js/customize.min.js'
  142 + },
  143 + docsJs: {
  144 + src: configBridge.paths.docsJs,
  145 + dest: 'docs/assets/js/docs.min.js'
  146 + }
  147 + },
  148 +
  149 + qunit: {
  150 + options: {
  151 + inject: 'js/tests/unit/phantom.js'
  152 + },
  153 + files: 'js/tests/index.html'
  154 + },
  155 +
  156 + less: {
  157 + compileCore: {
  158 + options: {
  159 + strictMath: true,
  160 + sourceMap: true,
  161 + outputSourceFiles: true,
  162 + sourceMapURL: '<%= pkg.name %>.css.map',
  163 + sourceMapFilename: 'dist/css/<%= pkg.name %>.css.map'
  164 + },
  165 + src: 'less/bootstrap.less',
  166 + dest: 'dist/css/<%= pkg.name %>.css'
  167 + },
  168 + compileTheme: {
  169 + options: {
  170 + strictMath: true,
  171 + sourceMap: true,
  172 + outputSourceFiles: true,
  173 + sourceMapURL: '<%= pkg.name %>-theme.css.map',
  174 + sourceMapFilename: 'dist/css/<%= pkg.name %>-theme.css.map'
  175 + },
  176 + src: 'less/theme.less',
  177 + dest: 'dist/css/<%= pkg.name %>-theme.css'
  178 + }
  179 + },
  180 +
  181 + autoprefixer: {
  182 + options: {
  183 + browsers: configBridge.config.autoprefixerBrowsers
  184 + },
  185 + core: {
  186 + options: {
  187 + map: true
  188 + },
  189 + src: 'dist/css/<%= pkg.name %>.css'
  190 + },
  191 + theme: {
  192 + options: {
  193 + map: true
  194 + },
  195 + src: 'dist/css/<%= pkg.name %>-theme.css'
  196 + },
  197 + docs: {
  198 + src: ['docs/assets/css/src/docs.css']
  199 + },
  200 + examples: {
  201 + expand: true,
  202 + cwd: 'docs/examples/',
  203 + src: ['**/*.css'],
  204 + dest: 'docs/examples/'
  205 + }
  206 + },
  207 +
  208 + csslint: {
  209 + options: {
  210 + csslintrc: 'less/.csslintrc'
  211 + },
  212 + dist: [
  213 + 'dist/css/bootstrap.css',
  214 + 'dist/css/bootstrap-theme.css'
  215 + ],
  216 + examples: [
  217 + 'docs/examples/**/*.css'
  218 + ],
  219 + docs: {
  220 + options: {
  221 + ids: false,
  222 + 'overqualified-elements': false
  223 + },
  224 + src: 'docs/assets/css/src/docs.css'
  225 + }
  226 + },
  227 +
  228 + cssmin: {
  229 + options: {
  230 + // TODO: disable `zeroUnits` optimization once clean-css 3.2 is released
  231 + // and then simplify the fix for https://github.com/twbs/bootstrap/issues/14837 accordingly
  232 + compatibility: 'ie8',
  233 + keepSpecialComments: '*',
  234 + sourceMap: true,
  235 + advanced: false
  236 + },
  237 + minifyCore: {
  238 + src: 'dist/css/<%= pkg.name %>.css',
  239 + dest: 'dist/css/<%= pkg.name %>.min.css'
  240 + },
  241 + minifyTheme: {
  242 + src: 'dist/css/<%= pkg.name %>-theme.css',
  243 + dest: 'dist/css/<%= pkg.name %>-theme.min.css'
  244 + },
  245 + docs: {
  246 + src: [
  247 + 'docs/assets/css/ie10-viewport-bug-workaround.css',
  248 + 'docs/assets/css/src/pygments-manni.css',
  249 + 'docs/assets/css/src/docs.css'
  250 + ],
  251 + dest: 'docs/assets/css/docs.min.css'
  252 + }
  253 + },
  254 +
  255 + csscomb: {
  256 + options: {
  257 + config: 'less/.csscomb.json'
  258 + },
  259 + dist: {
  260 + expand: true,
  261 + cwd: 'dist/css/',
  262 + src: ['*.css', '!*.min.css'],
  263 + dest: 'dist/css/'
  264 + },
  265 + examples: {
  266 + expand: true,
  267 + cwd: 'docs/examples/',
  268 + src: '**/*.css',
  269 + dest: 'docs/examples/'
  270 + },
  271 + docs: {
  272 + src: 'docs/assets/css/src/docs.css',
  273 + dest: 'docs/assets/css/src/docs.css'
  274 + }
  275 + },
  276 +
  277 + copy: {
  278 + fonts: {
  279 + expand: true,
  280 + src: 'fonts/*',
  281 + dest: 'dist/'
  282 + },
  283 + docs: {
  284 + expand: true,
  285 + cwd: 'dist/',
  286 + src: [
  287 + '**/*'
  288 + ],
  289 + dest: 'docs/dist/'
  290 + }
  291 + },
  292 +
  293 + connect: {
  294 + server: {
  295 + options: {
  296 + port: 3000,
  297 + base: '.'
  298 + }
  299 + }
  300 + },
  301 +
  302 + jekyll: {
  303 + options: {
  304 + config: '_config.yml'
  305 + },
  306 + docs: {},
  307 + github: {
  308 + options: {
  309 + raw: 'github: true'
  310 + }
  311 + }
  312 + },
  313 +
  314 + htmlmin: {
  315 + dist: {
  316 + options: {
  317 + collapseWhitespace: true,
  318 + conservativeCollapse: true,
  319 + minifyCSS: true,
  320 + minifyJS: true,
  321 + removeAttributeQuotes: true,
  322 + removeComments: true
  323 + },
  324 + expand: true,
  325 + cwd: '_gh_pages',
  326 + dest: '_gh_pages',
  327 + src: [
  328 + '**/*.html',
  329 + '!examples/**/*.html'
  330 + ]
  331 + }
  332 + },
  333 +
  334 + jade: {
  335 + options: {
  336 + pretty: true,
  337 + data: getLessVarsData
  338 + },
  339 + customizerVars: {
  340 + src: 'docs/_jade/customizer-variables.jade',
  341 + dest: 'docs/_includes/customizer-variables.html'
  342 + },
  343 + customizerNav: {
  344 + src: 'docs/_jade/customizer-nav.jade',
  345 + dest: 'docs/_includes/nav/customize.html'
  346 + }
  347 + },
  348 +
  349 + htmllint: {
  350 + options: {
  351 + ignore: [
  352 + 'Attribute "autocomplete" not allowed on element "button" at this point.',
  353 + 'Attribute "autocomplete" is only allowed when the input type is "color", "date", "datetime", "datetime-local", "email", "month", "number", "password", "range", "search", "tel", "text", "time", "url", or "week".',
  354 + 'Element "img" is missing required attribute "src".'
  355 + ]
  356 + },
  357 + src: '_gh_pages/**/*.html'
  358 + },
  359 +
  360 + watch: {
  361 + src: {
  362 + files: '<%= jshint.core.src %>',
  363 + tasks: ['jshint:core', 'qunit', 'concat']
  364 + },
  365 + test: {
  366 + files: '<%= jshint.test.src %>',
  367 + tasks: ['jshint:test', 'qunit']
  368 + },
  369 + less: {
  370 + files: 'less/**/*.less',
  371 + tasks: 'less'
  372 + }
  373 + },
  374 +
  375 + sed: {
  376 + versionNumber: {
  377 + pattern: (function () {
  378 + var old = grunt.option('oldver');
  379 + return old ? RegExp.quote(old) : old;
  380 + })(),
  381 + replacement: grunt.option('newver'),
  382 + exclude: [
  383 + 'dist/fonts',
  384 + 'docs/assets',
  385 + 'fonts',
  386 + 'js/tests/vendor',
  387 + 'node_modules',
  388 + 'test-infra'
  389 + ],
  390 + recursive: true
  391 + }
  392 + },
  393 +
  394 + 'saucelabs-qunit': {
  395 + all: {
  396 + options: {
  397 + build: process.env.TRAVIS_JOB_ID,
  398 + throttled: 10,
  399 + maxRetries: 3,
  400 + maxPollRetries: 4,
  401 + urls: ['http://127.0.0.1:3000/js/tests/index.html?hidepassed'],
  402 + browsers: grunt.file.readYAML('grunt/sauce_browsers.yml')
  403 + }
  404 + }
  405 + },
  406 +
  407 + exec: {
  408 + npmUpdate: {
  409 + command: 'npm update'
  410 + }
  411 + },
  412 +
  413 + compress: {
  414 + main: {
  415 + options: {
  416 + archive: 'bootstrap-<%= pkg.version %>-dist.zip',
  417 + mode: 'zip',
  418 + level: 9,
  419 + pretty: true
  420 + },
  421 + files: [
  422 + {
  423 + expand: true,
  424 + cwd: 'dist/',
  425 + src: ['**'],
  426 + dest: 'bootstrap-<%= pkg.version %>-dist'
  427 + }
  428 + ]
  429 + }
  430 + }
  431 +
  432 + });
  433 +
  434 +
  435 + // These plugins provide necessary tasks.
  436 + require('load-grunt-tasks')(grunt, { scope: 'devDependencies' });
  437 + require('time-grunt')(grunt);
  438 +
  439 + // Docs HTML validation task
  440 + grunt.registerTask('validate-html', ['jekyll:docs', 'htmllint']);
  441 +
  442 + var runSubset = function (subset) {
  443 + return !process.env.TWBS_TEST || process.env.TWBS_TEST === subset;
  444 + };
  445 + var isUndefOrNonZero = function (val) {
  446 + return val === undefined || val !== '0';
  447 + };
  448 +
  449 + // Test task.
  450 + var testSubtasks = [];
  451 + // Skip core tests if running a different subset of the test suite
  452 + if (runSubset('core') &&
  453 + // Skip core tests if this is a Savage build
  454 + process.env.TRAVIS_REPO_SLUG !== 'twbs-savage/bootstrap') {
  455 + testSubtasks = testSubtasks.concat(['dist-css', 'dist-js', 'csslint:dist', 'test-js', 'docs']);
  456 + }
  457 + // Skip HTML validation if running a different subset of the test suite
  458 + if (runSubset('validate-html') &&
  459 + // Skip HTML5 validator on Travis when [skip validator] is in the commit message
  460 + isUndefOrNonZero(process.env.TWBS_DO_VALIDATOR)) {
  461 + testSubtasks.push('validate-html');
  462 + }
  463 + // Only run Sauce Labs tests if there's a Sauce access key
  464 + if (typeof process.env.SAUCE_ACCESS_KEY !== 'undefined' &&
  465 + // Skip Sauce if running a different subset of the test suite
  466 + runSubset('sauce-js-unit') &&
  467 + // Skip Sauce on Travis when [skip sauce] is in the commit message
  468 + isUndefOrNonZero(process.env.TWBS_DO_SAUCE)) {
  469 + testSubtasks.push('connect');
  470 + testSubtasks.push('saucelabs-qunit');
  471 + }
  472 + grunt.registerTask('test', testSubtasks);
  473 + grunt.registerTask('test-js', ['jshint:core', 'jshint:test', 'jshint:grunt', 'jscs:core', 'jscs:test', 'jscs:grunt', 'qunit']);
  474 +
  475 + // JS distribution task.
  476 + grunt.registerTask('dist-js', ['concat', 'uglify:core', 'commonjs']);
  477 +
  478 + // CSS distribution task.
  479 + grunt.registerTask('less-compile', ['less:compileCore', 'less:compileTheme']);
  480 + grunt.registerTask('dist-css', ['less-compile', 'autoprefixer:core', 'autoprefixer:theme', 'csscomb:dist', 'cssmin:minifyCore', 'cssmin:minifyTheme']);
  481 +
  482 + // Full distribution task.
  483 + grunt.registerTask('dist', ['clean:dist', 'dist-css', 'copy:fonts', 'dist-js']);
  484 +
  485 + // Default task.
  486 + grunt.registerTask('default', ['clean:dist', 'copy:fonts', 'test']);
  487 +
  488 + // Version numbering task.
  489 + // grunt change-version-number --oldver=A.B.C --newver=X.Y.Z
  490 + // This can be overzealous, so its changes should always be manually reviewed!
  491 + grunt.registerTask('change-version-number', 'sed');
  492 +
  493 + grunt.registerTask('build-glyphicons-data', function () { generateGlyphiconsData.call(this, grunt); });
  494 +
  495 + // task for building customizer
  496 + grunt.registerTask('build-customizer', ['build-customizer-html', 'build-raw-files']);
  497 + grunt.registerTask('build-customizer-html', 'jade');
  498 + grunt.registerTask('build-raw-files', 'Add scripts/less files to customizer.', function () {
  499 + var banner = grunt.template.process('<%= banner %>');
  500 + generateRawFiles(grunt, banner);
  501 + });
  502 +
  503 + grunt.registerTask('commonjs', 'Generate CommonJS entrypoint module in dist dir.', function () {
  504 + var srcFiles = grunt.config.get('concat.bootstrap.src');
  505 + var destFilepath = 'dist/js/npm.js';
  506 + generateCommonJSModule(grunt, srcFiles, destFilepath);
  507 + });
  508 +
  509 + // Docs task.
  510 + grunt.registerTask('docs-css', ['autoprefixer:docs', 'autoprefixer:examples', 'csscomb:docs', 'csscomb:examples', 'cssmin:docs']);
  511 + grunt.registerTask('lint-docs-css', ['csslint:docs', 'csslint:examples']);
  512 + grunt.registerTask('docs-js', ['uglify:docsJs', 'uglify:customize']);
  513 + grunt.registerTask('lint-docs-js', ['jshint:assets', 'jscs:assets']);
  514 + grunt.registerTask('docs', ['docs-css', 'lint-docs-css', 'docs-js', 'lint-docs-js', 'clean:docs', 'copy:docs', 'build-glyphicons-data', 'build-customizer']);
  515 +
  516 + grunt.registerTask('prep-release', ['dist', 'docs', 'jekyll:github', 'htmlmin', 'compress']);
  517 +
  518 + // Task for updating the cached npm packages used by the Travis build (which are controlled by test-infra/npm-shrinkwrap.json).
  519 + // This task should be run and the updated file should be committed whenever Bootstrap's dependencies change.
  520 + grunt.registerTask('update-shrinkwrap', ['exec:npmUpdate', '_update-shrinkwrap']);
  521 + grunt.registerTask('_update-shrinkwrap', function () {
  522 + var done = this.async();
  523 + npmShrinkwrap({ dev: true, dirname: __dirname }, function (err) {
  524 + if (err) {
  525 + grunt.fail.warn(err);
  526 + }
  527 + var dest = 'test-infra/npm-shrinkwrap.json';
  528 + fs.renameSync('npm-shrinkwrap.json', dest);
  529 + grunt.log.writeln('File ' + dest.cyan + ' updated.');
  530 + done();
  531 + });
  532 + });
  533 +};
... ...
web/assets/vendor/bootstrap/LICENSE
... ... @@ -0,0 +1,21 @@
  1 +The MIT License (MIT)
  2 +
  3 +Copyright (c) 2011-2015 Twitter, Inc
  4 +
  5 +Permission is hereby granted, free of charge, to any person obtaining a copy
  6 +of this software and associated documentation files (the "Software"), to deal
  7 +in the Software without restriction, including without limitation the rights
  8 +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  9 +copies of the Software, and to permit persons to whom the Software is
  10 +furnished to do so, subject to the following conditions:
  11 +
  12 +The above copyright notice and this permission notice shall be included in
  13 +all copies or substantial portions of the Software.
  14 +
  15 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16 +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17 +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  18 +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  19 +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  20 +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  21 +THE SOFTWARE.
... ...
web/assets/vendor/bootstrap/README.md
... ... @@ -0,0 +1,139 @@
  1 +# [Bootstrap](http://getbootstrap.com)
  2 +
  3 +[![Slack](https://bootstrap-slack.herokuapp.com/badge.svg)](https://bootstrap-slack.herokuapp.com)
  4 +![Bower version](https://img.shields.io/bower/v/bootstrap.svg)
  5 +[![npm version](https://img.shields.io/npm/v/bootstrap.svg)](https://www.npmjs.com/package/bootstrap)
  6 +[![Build Status](https://img.shields.io/travis/twbs/bootstrap/master.svg)](https://travis-ci.org/twbs/bootstrap)
  7 +[![devDependency Status](https://img.shields.io/david/dev/twbs/bootstrap.svg)](https://david-dm.org/twbs/bootstrap#info=devDependencies)
  8 +[![NuGet](https://img.shields.io/nuget/v/bootstrap.svg)](https://www.nuget.org/packages/Bootstrap)
  9 +[![Selenium Test Status](https://saucelabs.com/browser-matrix/bootstrap.svg)](https://saucelabs.com/u/bootstrap)
  10 +
  11 +Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created by [Mark Otto](https://twitter.com/mdo) and [Jacob Thornton](https://twitter.com/fat), and maintained by the [core team](https://github.com/orgs/twbs/people) with the massive support and involvement of the community.
  12 +
  13 +To get started, check out <http://getbootstrap.com>!
  14 +
  15 +
  16 +## Table of contents
  17 +
  18 +* [Quick start](#quick-start)
  19 +* [Bugs and feature requests](#bugs-and-feature-requests)
  20 +* [Documentation](#documentation)
  21 +* [Contributing](#contributing)
  22 +* [Community](#community)
  23 +* [Versioning](#versioning)
  24 +* [Creators](#creators)
  25 +* [Copyright and license](#copyright-and-license)
  26 +
  27 +
  28 +## Quick start
  29 +
  30 +Several quick start options are available:
  31 +
  32 +* [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.3.6.zip).
  33 +* Clone the repo: `git clone https://github.com/twbs/bootstrap.git`.
  34 +* Install with [Bower](http://bower.io): `bower install bootstrap`.
  35 +* Install with [npm](https://www.npmjs.com): `npm install bootstrap`.
  36 +* Install with [Meteor](https://www.meteor.com): `meteor add twbs:bootstrap`.
  37 +* Install with [Composer](https://getcomposer.org): `composer require twbs/bootstrap`.
  38 +
  39 +Read the [Getting started page](http://getbootstrap.com/getting-started/) for information on the framework contents, templates and examples, and more.
  40 +
  41 +### What's included
  42 +
  43 +Within the download you'll find the following directories and files, logically grouping common assets and providing both compiled and minified variations. You'll see something like this:
  44 +
  45 +```
  46 +bootstrap/
  47 +├── css/
  48 +│ ├── bootstrap.css
  49 +│ ├── bootstrap.css.map
  50 +│ ├── bootstrap.min.css
  51 +│ ├── bootstrap.min.css.map
  52 +│ ├── bootstrap-theme.css
  53 +│ ├── bootstrap-theme.css.map
  54 +│ ├── bootstrap-theme.min.css
  55 +│ └── bootstrap-theme.min.css.map
  56 +├── js/
  57 +│ ├── bootstrap.js
  58 +│ └── bootstrap.min.js
  59 +└── fonts/
  60 + ├── glyphicons-halflings-regular.eot
  61 + ├── glyphicons-halflings-regular.svg
  62 + ├── glyphicons-halflings-regular.ttf
  63 + ├── glyphicons-halflings-regular.woff
  64 + └── glyphicons-halflings-regular.woff2
  65 +```
  66 +
  67 +We provide compiled CSS and JS (`bootstrap.*`), as well as compiled and minified CSS and JS (`bootstrap.min.*`). CSS [source maps](https://developer.chrome.com/devtools/docs/css-preprocessors) (`bootstrap.*.map`) are available for use with certain browsers' developer tools. Fonts from Glyphicons are included, as is the optional Bootstrap theme.
  68 +
  69 +
  70 +## Bugs and feature requests
  71 +
  72 +Have a bug or a feature request? Please first read the [issue guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md#using-the-issue-tracker) and search for existing and closed issues. If your problem or idea is not addressed yet, [please open a new issue](https://github.com/twbs/bootstrap/issues/new).
  73 +
  74 +
  75 +## Documentation
  76 +
  77 +Bootstrap's documentation, included in this repo in the root directory, is built with [Jekyll](http://jekyllrb.com) and publicly hosted on GitHub Pages at <http://getbootstrap.com>. The docs may also be run locally.
  78 +
  79 +### Running documentation locally
  80 +
  81 +1. If necessary, [install Jekyll](http://jekyllrb.com/docs/installation) (requires v3.0.x).
  82 + **Note for Windows users:** Read [this unofficial guide](http://jekyll-windows.juthilo.com/) to get Jekyll up and running without problems.
  83 +2. Install the Ruby-based syntax highlighter, [Rouge](https://github.com/jneen/rouge), with `gem install rouge`.
  84 +3. From the root `/bootstrap` directory, run `jekyll serve` in the command line.
  85 +4. Open `http://localhost:9001` in your browser, and voilà.
  86 +
  87 +Learn more about using Jekyll by reading its [documentation](http://jekyllrb.com/docs/home/).
  88 +
  89 +### Documentation for previous releases
  90 +
  91 +Documentation for v2.3.2 has been made available for the time being at <http://getbootstrap.com/2.3.2/> while folks transition to Bootstrap 3.
  92 +
  93 +[Previous releases](https://github.com/twbs/bootstrap/releases) and their documentation are also available for download.
  94 +
  95 +
  96 +## Contributing
  97 +
  98 +Please read through our [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development.
  99 +
  100 +Moreover, if your pull request contains JavaScript patches or features, you must include [relevant unit tests](https://github.com/twbs/bootstrap/tree/master/js/tests). All HTML and CSS should conform to the [Code Guide](https://github.com/mdo/code-guide), maintained by [Mark Otto](https://github.com/mdo).
  101 +
  102 +Editor preferences are available in the [editor config](https://github.com/twbs/bootstrap/blob/master/.editorconfig) for easy use in common text editors. Read more and download plugins at <http://editorconfig.org>.
  103 +
  104 +
  105 +## Community
  106 +
  107 +Get updates on Bootstrap's development and chat with the project maintainers and community members.
  108 +
  109 +* Follow [@getbootstrap on Twitter](https://twitter.com/getbootstrap).
  110 +* Read and subscribe to [The Official Bootstrap Blog](http://blog.getbootstrap.com).
  111 +* Join [the official Slack room](https://bootstrap-slack.herokuapp.com).
  112 +* Chat with fellow Bootstrappers in IRC. On the `irc.freenode.net` server, in the `##bootstrap` channel.
  113 +* Implementation help may be found at Stack Overflow (tagged [`twitter-bootstrap-3`](https://stackoverflow.com/questions/tagged/twitter-bootstrap-3)).
  114 +* Developers should use the keyword `bootstrap` on packages which modify or add to the functionality of Bootstrap when distributing through [npm](https://www.npmjs.com/browse/keyword/bootstrap) or similar delivery mechanisms for maximum discoverability.
  115 +
  116 +
  117 +## Versioning
  118 +
  119 +For transparency into our release cycle and in striving to maintain backward compatibility, Bootstrap is maintained under [the Semantic Versioning guidelines](http://semver.org/). Sometimes we screw up, but we'll adhere to those rules whenever possible.
  120 +
  121 +See [the Releases section of our GitHub project](https://github.com/twbs/bootstrap/releases) for changelogs for each release version of Bootstrap. Release announcement posts on [the official Bootstrap blog](http://blog.getbootstrap.com) contain summaries of the most noteworthy changes made in each release.
  122 +
  123 +
  124 +## Creators
  125 +
  126 +**Mark Otto**
  127 +
  128 +* <https://twitter.com/mdo>
  129 +* <https://github.com/mdo>
  130 +
  131 +**Jacob Thornton**
  132 +
  133 +* <https://twitter.com/fat>
  134 +* <https://github.com/fat>
  135 +
  136 +
  137 +## Copyright and license
  138 +
  139 +Code and documentation copyright 2011-2015 Twitter, Inc. Code released under [the MIT license](https://github.com/twbs/bootstrap/blob/master/LICENSE). Docs released under [Creative Commons](https://github.com/twbs/bootstrap/blob/master/docs/LICENSE).
... ...
web/assets/vendor/bootstrap/bower.json
... ... @@ -0,0 +1,34 @@
  1 +{
  2 + "name": "bootstrap",
  3 + "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
  4 + "keywords": [
  5 + "css",
  6 + "js",
  7 + "less",
  8 + "mobile-first",
  9 + "responsive",
  10 + "front-end",
  11 + "framework",
  12 + "web"
  13 + ],
  14 + "homepage": "http://getbootstrap.com",
  15 + "license": "MIT",
  16 + "moduleType": "globals",
  17 + "main": [
  18 + "less/bootstrap.less",
  19 + "dist/js/bootstrap.js"
  20 + ],
  21 + "ignore": [
  22 + "/.*",
  23 + "_config.yml",
  24 + "CNAME",
  25 + "composer.json",
  26 + "CONTRIBUTING.md",
  27 + "docs",
  28 + "js/tests",
  29 + "test-infra"
  30 + ],
  31 + "dependencies": {
  32 + "jquery": "1.9.1 - 2"
  33 + }
  34 +}
... ...
web/assets/vendor/bootstrap/dist/css/bootstrap-theme.css
... ... @@ -0,0 +1,587 @@
  1 +/*!
  2 + * Bootstrap v3.3.6 (http://getbootstrap.com)
  3 + * Copyright 2011-2015 Twitter, Inc.
  4 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  5 + */
  6 +.btn-default,
  7 +.btn-primary,
  8 +.btn-success,
  9 +.btn-info,
  10 +.btn-warning,
  11 +.btn-danger {
  12 + text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
  13 + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
  14 + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
  15 +}
  16 +.btn-default:active,
  17 +.btn-primary:active,
  18 +.btn-success:active,
  19 +.btn-info:active,
  20 +.btn-warning:active,
  21 +.btn-danger:active,
  22 +.btn-default.active,
  23 +.btn-primary.active,
  24 +.btn-success.active,
  25 +.btn-info.active,
  26 +.btn-warning.active,
  27 +.btn-danger.active {
  28 + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
  29 + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
  30 +}
  31 +.btn-default.disabled,
  32 +.btn-primary.disabled,
  33 +.btn-success.disabled,
  34 +.btn-info.disabled,
  35 +.btn-warning.disabled,
  36 +.btn-danger.disabled,
  37 +.btn-default[disabled],
  38 +.btn-primary[disabled],
  39 +.btn-success[disabled],
  40 +.btn-info[disabled],
  41 +.btn-warning[disabled],
  42 +.btn-danger[disabled],
  43 +fieldset[disabled] .btn-default,
  44 +fieldset[disabled] .btn-primary,
  45 +fieldset[disabled] .btn-success,
  46 +fieldset[disabled] .btn-info,
  47 +fieldset[disabled] .btn-warning,
  48 +fieldset[disabled] .btn-danger {
  49 + -webkit-box-shadow: none;
  50 + box-shadow: none;
  51 +}
  52 +.btn-default .badge,
  53 +.btn-primary .badge,
  54 +.btn-success .badge,
  55 +.btn-info .badge,
  56 +.btn-warning .badge,
  57 +.btn-danger .badge {
  58 + text-shadow: none;
  59 +}
  60 +.btn:active,
  61 +.btn.active {
  62 + background-image: none;
  63 +}
  64 +.btn-default {
  65 + text-shadow: 0 1px 0 #fff;
  66 + background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
  67 + background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
  68 + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
  69 + background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
  70 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
  71 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  72 + background-repeat: repeat-x;
  73 + border-color: #dbdbdb;
  74 + border-color: #ccc;
  75 +}
  76 +.btn-default:hover,
  77 +.btn-default:focus {
  78 + background-color: #e0e0e0;
  79 + background-position: 0 -15px;
  80 +}
  81 +.btn-default:active,
  82 +.btn-default.active {
  83 + background-color: #e0e0e0;
  84 + border-color: #dbdbdb;
  85 +}
  86 +.btn-default.disabled,
  87 +.btn-default[disabled],
  88 +fieldset[disabled] .btn-default,
  89 +.btn-default.disabled:hover,
  90 +.btn-default[disabled]:hover,
  91 +fieldset[disabled] .btn-default:hover,
  92 +.btn-default.disabled:focus,
  93 +.btn-default[disabled]:focus,
  94 +fieldset[disabled] .btn-default:focus,
  95 +.btn-default.disabled.focus,
  96 +.btn-default[disabled].focus,
  97 +fieldset[disabled] .btn-default.focus,
  98 +.btn-default.disabled:active,
  99 +.btn-default[disabled]:active,
  100 +fieldset[disabled] .btn-default:active,
  101 +.btn-default.disabled.active,
  102 +.btn-default[disabled].active,
  103 +fieldset[disabled] .btn-default.active {
  104 + background-color: #e0e0e0;
  105 + background-image: none;
  106 +}
  107 +.btn-primary {
  108 + background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
  109 + background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
  110 + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));
  111 + background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
  112 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);
  113 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  114 + background-repeat: repeat-x;
  115 + border-color: #245580;
  116 +}
  117 +.btn-primary:hover,
  118 +.btn-primary:focus {
  119 + background-color: #265a88;
  120 + background-position: 0 -15px;
  121 +}
  122 +.btn-primary:active,
  123 +.btn-primary.active {
  124 + background-color: #265a88;
  125 + border-color: #245580;
  126 +}
  127 +.btn-primary.disabled,
  128 +.btn-primary[disabled],
  129 +fieldset[disabled] .btn-primary,
  130 +.btn-primary.disabled:hover,
  131 +.btn-primary[disabled]:hover,
  132 +fieldset[disabled] .btn-primary:hover,
  133 +.btn-primary.disabled:focus,
  134 +.btn-primary[disabled]:focus,
  135 +fieldset[disabled] .btn-primary:focus,
  136 +.btn-primary.disabled.focus,
  137 +.btn-primary[disabled].focus,
  138 +fieldset[disabled] .btn-primary.focus,
  139 +.btn-primary.disabled:active,
  140 +.btn-primary[disabled]:active,
  141 +fieldset[disabled] .btn-primary:active,
  142 +.btn-primary.disabled.active,
  143 +.btn-primary[disabled].active,
  144 +fieldset[disabled] .btn-primary.active {
  145 + background-color: #265a88;
  146 + background-image: none;
  147 +}
  148 +.btn-success {
  149 + background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
  150 + background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
  151 + background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
  152 + background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
  153 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
  154 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  155 + background-repeat: repeat-x;
  156 + border-color: #3e8f3e;
  157 +}
  158 +.btn-success:hover,
  159 +.btn-success:focus {
  160 + background-color: #419641;
  161 + background-position: 0 -15px;
  162 +}
  163 +.btn-success:active,
  164 +.btn-success.active {
  165 + background-color: #419641;
  166 + border-color: #3e8f3e;
  167 +}
  168 +.btn-success.disabled,
  169 +.btn-success[disabled],
  170 +fieldset[disabled] .btn-success,
  171 +.btn-success.disabled:hover,
  172 +.btn-success[disabled]:hover,
  173 +fieldset[disabled] .btn-success:hover,
  174 +.btn-success.disabled:focus,
  175 +.btn-success[disabled]:focus,
  176 +fieldset[disabled] .btn-success:focus,
  177 +.btn-success.disabled.focus,
  178 +.btn-success[disabled].focus,
  179 +fieldset[disabled] .btn-success.focus,
  180 +.btn-success.disabled:active,
  181 +.btn-success[disabled]:active,
  182 +fieldset[disabled] .btn-success:active,
  183 +.btn-success.disabled.active,
  184 +.btn-success[disabled].active,
  185 +fieldset[disabled] .btn-success.active {
  186 + background-color: #419641;
  187 + background-image: none;
  188 +}
  189 +.btn-info {
  190 + background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
  191 + background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
  192 + background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
  193 + background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
  194 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
  195 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  196 + background-repeat: repeat-x;
  197 + border-color: #28a4c9;
  198 +}
  199 +.btn-info:hover,
  200 +.btn-info:focus {
  201 + background-color: #2aabd2;
  202 + background-position: 0 -15px;
  203 +}
  204 +.btn-info:active,
  205 +.btn-info.active {
  206 + background-color: #2aabd2;
  207 + border-color: #28a4c9;
  208 +}
  209 +.btn-info.disabled,
  210 +.btn-info[disabled],
  211 +fieldset[disabled] .btn-info,
  212 +.btn-info.disabled:hover,
  213 +.btn-info[disabled]:hover,
  214 +fieldset[disabled] .btn-info:hover,
  215 +.btn-info.disabled:focus,
  216 +.btn-info[disabled]:focus,
  217 +fieldset[disabled] .btn-info:focus,
  218 +.btn-info.disabled.focus,
  219 +.btn-info[disabled].focus,
  220 +fieldset[disabled] .btn-info.focus,
  221 +.btn-info.disabled:active,
  222 +.btn-info[disabled]:active,
  223 +fieldset[disabled] .btn-info:active,
  224 +.btn-info.disabled.active,
  225 +.btn-info[disabled].active,
  226 +fieldset[disabled] .btn-info.active {
  227 + background-color: #2aabd2;
  228 + background-image: none;
  229 +}
  230 +.btn-warning {
  231 + background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
  232 + background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
  233 + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
  234 + background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
  235 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
  236 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  237 + background-repeat: repeat-x;
  238 + border-color: #e38d13;
  239 +}
  240 +.btn-warning:hover,
  241 +.btn-warning:focus {
  242 + background-color: #eb9316;
  243 + background-position: 0 -15px;
  244 +}
  245 +.btn-warning:active,
  246 +.btn-warning.active {
  247 + background-color: #eb9316;
  248 + border-color: #e38d13;
  249 +}
  250 +.btn-warning.disabled,
  251 +.btn-warning[disabled],
  252 +fieldset[disabled] .btn-warning,
  253 +.btn-warning.disabled:hover,
  254 +.btn-warning[disabled]:hover,
  255 +fieldset[disabled] .btn-warning:hover,
  256 +.btn-warning.disabled:focus,
  257 +.btn-warning[disabled]:focus,
  258 +fieldset[disabled] .btn-warning:focus,
  259 +.btn-warning.disabled.focus,
  260 +.btn-warning[disabled].focus,
  261 +fieldset[disabled] .btn-warning.focus,
  262 +.btn-warning.disabled:active,
  263 +.btn-warning[disabled]:active,
  264 +fieldset[disabled] .btn-warning:active,
  265 +.btn-warning.disabled.active,
  266 +.btn-warning[disabled].active,
  267 +fieldset[disabled] .btn-warning.active {
  268 + background-color: #eb9316;
  269 + background-image: none;
  270 +}
  271 +.btn-danger {
  272 + background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
  273 + background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
  274 + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
  275 + background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
  276 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
  277 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  278 + background-repeat: repeat-x;
  279 + border-color: #b92c28;
  280 +}
  281 +.btn-danger:hover,
  282 +.btn-danger:focus {
  283 + background-color: #c12e2a;
  284 + background-position: 0 -15px;
  285 +}
  286 +.btn-danger:active,
  287 +.btn-danger.active {
  288 + background-color: #c12e2a;
  289 + border-color: #b92c28;
  290 +}
  291 +.btn-danger.disabled,
  292 +.btn-danger[disabled],
  293 +fieldset[disabled] .btn-danger,
  294 +.btn-danger.disabled:hover,
  295 +.btn-danger[disabled]:hover,
  296 +fieldset[disabled] .btn-danger:hover,
  297 +.btn-danger.disabled:focus,
  298 +.btn-danger[disabled]:focus,
  299 +fieldset[disabled] .btn-danger:focus,
  300 +.btn-danger.disabled.focus,
  301 +.btn-danger[disabled].focus,
  302 +fieldset[disabled] .btn-danger.focus,
  303 +.btn-danger.disabled:active,
  304 +.btn-danger[disabled]:active,
  305 +fieldset[disabled] .btn-danger:active,
  306 +.btn-danger.disabled.active,
  307 +.btn-danger[disabled].active,
  308 +fieldset[disabled] .btn-danger.active {
  309 + background-color: #c12e2a;
  310 + background-image: none;
  311 +}
  312 +.thumbnail,
  313 +.img-thumbnail {
  314 + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
  315 + box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
  316 +}
  317 +.dropdown-menu > li > a:hover,
  318 +.dropdown-menu > li > a:focus {
  319 + background-color: #e8e8e8;
  320 + background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
  321 + background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
  322 + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
  323 + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
  324 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
  325 + background-repeat: repeat-x;
  326 +}
  327 +.dropdown-menu > .active > a,
  328 +.dropdown-menu > .active > a:hover,
  329 +.dropdown-menu > .active > a:focus {
  330 + background-color: #2e6da4;
  331 + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
  332 + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
  333 + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
  334 + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
  335 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
  336 + background-repeat: repeat-x;
  337 +}
  338 +.navbar-default {
  339 + background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
  340 + background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
  341 + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
  342 + background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
  343 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
  344 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  345 + background-repeat: repeat-x;
  346 + border-radius: 4px;
  347 + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
  348 + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
  349 +}
  350 +.navbar-default .navbar-nav > .open > a,
  351 +.navbar-default .navbar-nav > .active > a {
  352 + background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
  353 + background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
  354 + background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
  355 + background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
  356 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
  357 + background-repeat: repeat-x;
  358 + -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
  359 + box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
  360 +}
  361 +.navbar-brand,
  362 +.navbar-nav > li > a {
  363 + text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
  364 +}
  365 +.navbar-inverse {
  366 + background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
  367 + background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
  368 + background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
  369 + background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
  370 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
  371 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  372 + background-repeat: repeat-x;
  373 + border-radius: 4px;
  374 +}
  375 +.navbar-inverse .navbar-nav > .open > a,
  376 +.navbar-inverse .navbar-nav > .active > a {
  377 + background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
  378 + background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
  379 + background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
  380 + background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
  381 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
  382 + background-repeat: repeat-x;
  383 + -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
  384 + box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
  385 +}
  386 +.navbar-inverse .navbar-brand,
  387 +.navbar-inverse .navbar-nav > li > a {
  388 + text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
  389 +}
  390 +.navbar-static-top,
  391 +.navbar-fixed-top,
  392 +.navbar-fixed-bottom {
  393 + border-radius: 0;
  394 +}
  395 +@media (max-width: 767px) {
  396 + .navbar .navbar-nav .open .dropdown-menu > .active > a,
  397 + .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
  398 + .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
  399 + color: #fff;
  400 + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
  401 + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
  402 + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
  403 + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
  404 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
  405 + background-repeat: repeat-x;
  406 + }
  407 +}
  408 +.alert {
  409 + text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
  410 + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
  411 + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
  412 +}
  413 +.alert-success {
  414 + background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
  415 + background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
  416 + background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
  417 + background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
  418 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
  419 + background-repeat: repeat-x;
  420 + border-color: #b2dba1;
  421 +}
  422 +.alert-info {
  423 + background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
  424 + background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
  425 + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
  426 + background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
  427 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
  428 + background-repeat: repeat-x;
  429 + border-color: #9acfea;
  430 +}
  431 +.alert-warning {
  432 + background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
  433 + background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
  434 + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
  435 + background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
  436 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
  437 + background-repeat: repeat-x;
  438 + border-color: #f5e79e;
  439 +}
  440 +.alert-danger {
  441 + background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
  442 + background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
  443 + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
  444 + background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
  445 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
  446 + background-repeat: repeat-x;
  447 + border-color: #dca7a7;
  448 +}
  449 +.progress {
  450 + background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
  451 + background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
  452 + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
  453 + background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
  454 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
  455 + background-repeat: repeat-x;
  456 +}
  457 +.progress-bar {
  458 + background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
  459 + background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
  460 + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));
  461 + background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
  462 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);
  463 + background-repeat: repeat-x;
  464 +}
  465 +.progress-bar-success {
  466 + background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
  467 + background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
  468 + background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
  469 + background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
  470 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
  471 + background-repeat: repeat-x;
  472 +}
  473 +.progress-bar-info {
  474 + background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
  475 + background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
  476 + background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
  477 + background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
  478 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
  479 + background-repeat: repeat-x;
  480 +}
  481 +.progress-bar-warning {
  482 + background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
  483 + background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
  484 + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
  485 + background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
  486 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
  487 + background-repeat: repeat-x;
  488 +}
  489 +.progress-bar-danger {
  490 + background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
  491 + background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
  492 + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
  493 + background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
  494 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
  495 + background-repeat: repeat-x;
  496 +}
  497 +.progress-bar-striped {
  498 + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
  499 + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
  500 + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
  501 +}
  502 +.list-group {
  503 + border-radius: 4px;
  504 + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
  505 + box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
  506 +}
  507 +.list-group-item.active,
  508 +.list-group-item.active:hover,
  509 +.list-group-item.active:focus {
  510 + text-shadow: 0 -1px 0 #286090;
  511 + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
  512 + background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
  513 + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));
  514 + background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
  515 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);
  516 + background-repeat: repeat-x;
  517 + border-color: #2b669a;
  518 +}
  519 +.list-group-item.active .badge,
  520 +.list-group-item.active:hover .badge,
  521 +.list-group-item.active:focus .badge {
  522 + text-shadow: none;
  523 +}
  524 +.panel {
  525 + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
  526 + box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
  527 +}
  528 +.panel-default > .panel-heading {
  529 + background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
  530 + background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
  531 + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
  532 + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
  533 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
  534 + background-repeat: repeat-x;
  535 +}
  536 +.panel-primary > .panel-heading {
  537 + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
  538 + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
  539 + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
  540 + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
  541 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
  542 + background-repeat: repeat-x;
  543 +}
  544 +.panel-success > .panel-heading {
  545 + background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
  546 + background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
  547 + background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
  548 + background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
  549 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
  550 + background-repeat: repeat-x;
  551 +}
  552 +.panel-info > .panel-heading {
  553 + background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
  554 + background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
  555 + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
  556 + background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
  557 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
  558 + background-repeat: repeat-x;
  559 +}
  560 +.panel-warning > .panel-heading {
  561 + background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
  562 + background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
  563 + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
  564 + background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
  565 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
  566 + background-repeat: repeat-x;
  567 +}
  568 +.panel-danger > .panel-heading {
  569 + background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
  570 + background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
  571 + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
  572 + background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
  573 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
  574 + background-repeat: repeat-x;
  575 +}
  576 +.well {
  577 + background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
  578 + background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
  579 + background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
  580 + background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
  581 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
  582 + background-repeat: repeat-x;
  583 + border-color: #dcdcdc;
  584 + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
  585 + box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
  586 +}
  587 +/*# sourceMappingURL=bootstrap-theme.css.map */
... ...
web/assets/vendor/bootstrap/dist/css/bootstrap-theme.css.map
... ... @@ -0,0 +1 @@
  1 +{"version":3,"sources":["bootstrap-theme.css","less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"AAAA;;;;GAIG;ACeH;;;;;;EAME,yCAAA;EC2CA,4FAAA;EACQ,oFAAA;CFvDT;ACgBC;;;;;;;;;;;;ECsCA,yDAAA;EACQ,iDAAA;CFxCT;ACMC;;;;;;;;;;;;;;;;;;ECiCA,yBAAA;EACQ,iBAAA;CFnBT;AC/BD;;;;;;EAuBI,kBAAA;CDgBH;ACyBC;;EAEE,uBAAA;CDvBH;AC4BD;EErEI,sEAAA;EACA,iEAAA;EACA,2FAAA;EAAA,oEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;EAuC2C,0BAAA;EAA2B,mBAAA;CDjBvE;ACpBC;;EAEE,0BAAA;EACA,6BAAA;CDsBH;ACnBC;;EAEE,0BAAA;EACA,sBAAA;CDqBH;ACfG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD6BL;ACbD;EEtEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CD8DD;AC5DC;;EAEE,0BAAA;EACA,6BAAA;CD8DH;AC3DC;;EAEE,0BAAA;EACA,sBAAA;CD6DH;ACvDG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDqEL;ACpDD;EEvEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CDsGD;ACpGC;;EAEE,0BAAA;EACA,6BAAA;CDsGH;ACnGC;;EAEE,0BAAA;EACA,sBAAA;CDqGH;AC/FG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD6GL;AC3FD;EExEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CD8ID;AC5IC;;EAEE,0BAAA;EACA,6BAAA;CD8IH;AC3IC;;EAEE,0BAAA;EACA,sBAAA;CD6IH;ACvIG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDqJL;AClID;EEzEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CDsLD;ACpLC;;EAEE,0BAAA;EACA,6BAAA;CDsLH;ACnLC;;EAEE,0BAAA;EACA,sBAAA;CDqLH;AC/KG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD6LL;ACzKD;EE1EI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CD8ND;AC5NC;;EAEE,0BAAA;EACA,6BAAA;CD8NH;AC3NC;;EAEE,0BAAA;EACA,sBAAA;CD6NH;ACvNG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDqOL;AC1MD;;EClCE,mDAAA;EACQ,2CAAA;CFgPT;ACrMD;;EE3FI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF0FF,0BAAA;CD2MD;ACzMD;;;EEhGI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EFgGF,0BAAA;CD+MD;ACtMD;EE7GI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;ECnBF,oEAAA;EH+HA,mBAAA;ECjEA,4FAAA;EACQ,oFAAA;CF8QT;ACjND;;EE7GI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;ED2CF,yDAAA;EACQ,iDAAA;CFwRT;AC9MD;;EAEE,+CAAA;CDgND;AC5MD;EEhII,sEAAA;EACA,iEAAA;EACA,2FAAA;EAAA,oEAAA;EACA,4BAAA;EACA,uHAAA;ECnBF,oEAAA;EHkJA,mBAAA;CDkND;ACrND;;EEhII,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;ED2CF,wDAAA;EACQ,gDAAA;CF+ST;AC/ND;;EAYI,0CAAA;CDuNH;AClND;;;EAGE,iBAAA;CDoND;AC/LD;EAfI;;;IAGE,YAAA;IE7JF,yEAAA;IACA,oEAAA;IACA,8FAAA;IAAA,uEAAA;IACA,4BAAA;IACA,uHAAA;GH+WD;CACF;AC3MD;EACE,8CAAA;EC3HA,2FAAA;EACQ,mFAAA;CFyUT;ACnMD;EEtLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CD+MD;AC1MD;EEvLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CDuND;ACjND;EExLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CD+ND;ACxND;EEzLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CDuOD;ACxND;EEjMI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH4ZH;ACrND;EE3MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHmaH;AC3ND;EE5MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH0aH;ACjOD;EE7MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHibH;ACvOD;EE9MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHwbH;AC7OD;EE/MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH+bH;AChPD;EElLI,8MAAA;EACA,yMAAA;EACA,sMAAA;CHqaH;AC5OD;EACE,mBAAA;EC9KA,mDAAA;EACQ,2CAAA;CF6ZT;AC7OD;;;EAGE,8BAAA;EEnOE,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EFiOF,sBAAA;CDmPD;ACxPD;;;EAQI,kBAAA;CDqPH;AC3OD;ECnME,kDAAA;EACQ,0CAAA;CFibT;ACrOD;EE5PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHoeH;AC3OD;EE7PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH2eH;ACjPD;EE9PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHkfH;ACvPD;EE/PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHyfH;AC7PD;EEhQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHggBH;ACnQD;EEjQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHugBH;ACnQD;EExQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EFsQF,sBAAA;EC3NA,0FAAA;EACQ,kFAAA;CFqeT","file":"bootstrap-theme.css","sourcesContent":["/*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","/*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]}
0 2 \ No newline at end of file
... ...
web/assets/vendor/bootstrap/dist/css/bootstrap-theme.min.css
... ... @@ -0,0 +1,6 @@
  1 +/*!
  2 + * Bootstrap v3.3.6 (http://getbootstrap.com)
  3 + * Copyright 2011-2015 Twitter, Inc.
  4 + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  5 + */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)}
  6 +/*# sourceMappingURL=bootstrap-theme.min.css.map */
0 7 \ No newline at end of file
... ...
web/assets/vendor/bootstrap/dist/css/bootstrap-theme.min.css.map
... ... @@ -0,0 +1 @@
  1 +{"version":3,"sources":["less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":";;;;AAmBA,YAAA,aAAA,UAAA,aAAA,aAAA,aAME,YAAA,EAAA,KAAA,EAAA,eC2CA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBDvCR,mBAAA,mBAAA,oBAAA,oBAAA,iBAAA,iBAAA,oBAAA,oBAAA,oBAAA,oBAAA,oBAAA,oBCsCA,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBDlCR,qBAAA,sBAAA,sBAAA,uBAAA,mBAAA,oBAAA,sBAAA,uBAAA,sBAAA,uBAAA,sBAAA,uBAAA,+BAAA,gCAAA,6BAAA,gCAAA,gCAAA,gCCiCA,mBAAA,KACQ,WAAA,KDlDV,mBAAA,oBAAA,iBAAA,oBAAA,oBAAA,oBAuBI,YAAA,KAyCF,YAAA,YAEE,iBAAA,KAKJ,aErEI,YAAA,EAAA,IAAA,EAAA,KACA,iBAAA,iDACA,iBAAA,4CAAA,iBAAA,qEAEA,iBAAA,+CCnBF,OAAA,+GH4CA,OAAA,0DACA,kBAAA,SAuC2C,aAAA,QAA2B,aAAA,KArCtE,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAgBN,aEtEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAiBN,aEvEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAkBN,UExEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,gBAAA,gBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,iBAAA,iBAEE,iBAAA,QACA,aAAA,QAMA,mBAAA,0BAAA,yBAAA,0BAAA,yBAAA,yBAAA,oBAAA,2BAAA,0BAAA,2BAAA,0BAAA,0BAAA,6BAAA,oCAAA,mCAAA,oCAAA,mCAAA,mCAME,iBAAA,QACA,iBAAA,KAmBN,aEzEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAoBN,YE1EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,kBAAA,kBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,mBAAA,mBAEE,iBAAA,QACA,aAAA,QAMA,qBAAA,4BAAA,2BAAA,4BAAA,2BAAA,2BAAA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,+BAAA,sCAAA,qCAAA,sCAAA,qCAAA,qCAME,iBAAA,QACA,iBAAA,KA2BN,eAAA,WClCE,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBD2CV,0BAAA,0BE3FI,iBAAA,QACA,iBAAA,oDACA,iBAAA,+CAAA,iBAAA,wEACA,iBAAA,kDACA,OAAA,+GF0FF,kBAAA,SAEF,yBAAA,+BAAA,+BEhGI,iBAAA,QACA,iBAAA,oDACA,iBAAA,+CAAA,iBAAA,wEACA,iBAAA,kDACA,OAAA,+GFgGF,kBAAA,SASF,gBE7GI,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,OAAA,0DCnBF,kBAAA,SH+HA,cAAA,ICjEA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBD6DV,sCAAA,oCE7GI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD2CF,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBD0EV,cAAA,iBAEE,YAAA,EAAA,IAAA,EAAA,sBAIF,gBEhII,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,OAAA,0DCnBF,kBAAA,SHkJA,cAAA,IAHF,sCAAA,oCEhII,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD2CF,mBAAA,MAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBDgFV,8BAAA,iCAYI,YAAA,EAAA,KAAA,EAAA,gBAKJ,qBAAA,kBAAA,mBAGE,cAAA,EAqBF,yBAfI,mDAAA,yDAAA,yDAGE,MAAA,KE7JF,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,UFqKJ,OACE,YAAA,EAAA,IAAA,EAAA,qBC3HA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,gBDsIV,eEtLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAKF,YEvLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAMF,eExLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAOF,cEzLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAeF,UEjMI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFuMJ,cE3MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFwMJ,sBE5MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFyMJ,mBE7MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF0MJ,sBE9MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF2MJ,qBE/MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF+MJ,sBElLI,iBAAA,yKACA,iBAAA,oKACA,iBAAA,iKFyLJ,YACE,cAAA,IC9KA,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBDgLV,wBAAA,8BAAA,8BAGE,YAAA,EAAA,KAAA,EAAA,QEnOE,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFiOF,aAAA,QALF,+BAAA,qCAAA,qCAQI,YAAA,KAUJ,OCnME,mBAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,EAAA,IAAA,IAAA,gBD4MV,8BE5PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFyPJ,8BE7PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF0PJ,8BE9PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF2PJ,2BE/PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF4PJ,8BEhQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF6PJ,6BEjQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoQJ,MExQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFsQF,aAAA,QC3NA,mBAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,EAAA,IAAA,EAAA,qBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,EAAA,IAAA,EAAA"}
0 2 \ No newline at end of file
... ...