diff --git a/buildKaraage3.x.yml b/buildKaraage3.x.yml new file mode 100644 index 0000000000000000000000000000000000000000..e3002a928e1a708541d0a48ece5fbd2160729dea --- /dev/null +++ b/buildKaraage3.x.yml @@ -0,0 +1,17 @@ +--- +- + hosts: ldap-server + roles: +# - easy-rsa-CA +# - ldapserver + sudo: true + vars_files: + - vars/karaageVars.yml +- + hosts: karaage-server + roles: +# - easy-rsa-certificate + - karaage3.1.17 + sudo: true + vars_files: + - vars/karaageVars.yml diff --git a/headNode.yaml b/headNode.yaml index 22c1e0e7be63f7cd471c988e5bab34e99f0f10a4..d8fc004d334cfd70bc0ffeb6f8f6468b3b109a1b 100644 --- a/headNode.yaml +++ b/headNode.yaml @@ -25,6 +25,7 @@ resources: flavor: m1.small image: { get_param: image_id } key_name: { get_param: key_name } + security_groups: [OpenVPN, NSF, default] metadata: ansible_host_group: headNode ansible_ssh_user: ec2-user diff --git a/roles/OpenVPN-Client/vars/main.yml b/roles/OpenVPN-Client/vars/main.yml new file mode 120000 index 0000000000000000000000000000000000000000..0d79d56d9fbcc141687a5879eb653e3e8a6db563 --- /dev/null +++ b/roles/OpenVPN-Client/vars/main.yml @@ -0,0 +1 @@ +readme.txt \ No newline at end of file diff --git a/roles/OpenVPN-Server/vars/main.yml b/roles/OpenVPN-Server/vars/main.yml new file mode 120000 index 0000000000000000000000000000000000000000..0d79d56d9fbcc141687a5879eb653e3e8a6db563 --- /dev/null +++ b/roles/OpenVPN-Server/vars/main.yml @@ -0,0 +1 @@ +readme.txt \ No newline at end of file diff --git a/roles/easy-rsa-certificate/vars/main.yml b/roles/easy-rsa-certificate/vars/main.yml new file mode 120000 index 0000000000000000000000000000000000000000..0d79d56d9fbcc141687a5879eb653e3e8a6db563 --- /dev/null +++ b/roles/easy-rsa-certificate/vars/main.yml @@ -0,0 +1 @@ +readme.txt \ No newline at end of file diff --git a/roles/easy-rsa-certificate/vars/meta/main.yml b/roles/easy-rsa-certificate/vars/meta/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..fb87b0894c8bb8124740abb184a4c19f142d922b --- /dev/null +++ b/roles/easy-rsa-certificate/vars/meta/main.yml @@ -0,0 +1,5 @@ +--- +allow_duplicates: yes +dependencies: + - {role: easy-rsa-common } + diff --git a/roles/easy-rsa-certificate/vars/tasks/buildCert.yml b/roles/easy-rsa-certificate/vars/tasks/buildCert.yml new file mode 100644 index 0000000000000000000000000000000000000000..d71c98a30aefe14bb7fff65f12462da9462c5e3d --- /dev/null +++ b/roles/easy-rsa-certificate/vars/tasks/buildCert.yml @@ -0,0 +1,113 @@ +--- +- name: "Check client ca certificate" + register: ca_cert + stat: "path={{ x509_cacert_file }}" + +- name: "Check certificate and key" + shell: (openssl x509 -noout -modulus -in {{ x509_cert_file }} | openssl md5 ; openssl rsa -noout -modulus -in {{ x509_key_file }} | openssl md5) | uniq | wc -l + register: certcheck + sudo: true + +- name: "Check certificate" + register: cert + stat: "path={{ x509_cert_file }}" + sudo: true + +- name: "Check key" + register: key + stat: "path={{ x509_key_file }}" + sudo: true + +- name: "Default: we don't need a new certificate" + set_fact: needcert=False + +- name: "Set need cert if key is missing" + set_fact: needcert=True + when: key.stat.exists == false + +- name: "set needcert if cert is missing or of zero size" + set_fact: needcert=True + when: cert.stat.exists == false or cert.stat.size == 0 + +- name: "Delete Zero Sized Ceritificates" + remote_user: "{{ hostvars[x509_ca_server]['ansible_ssh_user'] }}" + delegate_to: "{{ x509_ca_server }}" + shell: rm -rf /etc/easy-rsa/2.0/keys/{{ x509_common_name }}.* + when: cert is defined and cert.stat.size == 0 + sudo: true + +- name: "set needcert if cert doesn't match key" + set_fact: needcert=True + when: certcheck.stdout == '2' + + +- name: "Creating Keypair" + shell: "echo noop when using easy-rsa" + when: needcert + +- name: "Creating CSR" + shell: " cd /etc/easy-rsa/2.0; . ./vars; export EASY_RSA=\"${EASY_RSA:-.}\"; \"$EASY_RSA\"/pkitool --csr {{ x509_csr_args }} {{ x509_common_name }}" + when: needcert + sudo: true + +- name: "Create node tmp directory" + delegate_to: 127.0.0.1 + shell: "mkdir -p /tmp/{{ inventory_hostname }} ; chmod 755 /tmp/{{ inventory_hostname }}" + when: x509_ca_server != inventory_hostname + +- name: "Copy CSR to ansible host" + fetch: "src=/etc/easy-rsa/2.0/keys/{{ x509_common_name }}.csr dest=/tmp/{{ inventory_hostname }}/{{ inventory_hostname }}.csr fail_on_missing=yes validate_md5=yes flat=yes" + sudo: true + when: needcert and x509_ca_server != inventory_hostname + +- name: "Copy CSR to CA" + remote_user: "{{ hostvars[x509_ca_server]['ansible_ssh_user'] }}" + delegate_to: "{{ x509_ca_server }}" + copy: "src=/tmp/{{ inventory_hostname }}/{{ inventory_hostname }}.csr dest=/etc/easy-rsa/2.0/keys/{{ x509_common_name }}.csr force=yes" + when: needcert and x509_ca_server != inventory_hostname + sudo: true + +- name: "Sign Certificate" + remote_user: "{{ hostvars[x509_ca_server]['ansible_ssh_user'] }}" + delegate_to: "{{ x509_ca_server }}" + shell: "cd /etc/easy-rsa/2.0; . ./vars; export EASY_RSA=\"${EASY_RSA:-.}\" ;\"$EASY_RSA\"/pkitool --sign {{ x509_sign_args }} {{ x509_common_name }}" + when: needcert + sudo: true + +- name: "Copy the Certificate to ansible host" + remote_user: "{{ hostvars[x509_ca_server]['ansible_ssh_user'] }}" + delegate_to: "{{ x509_ca_server }}" + fetch: "src=/etc/easy-rsa/2.0/keys/{{ x509_common_name }}.crt dest=/tmp/{{ inventory_hostname }}/{{ x509_common_name }}.crt fail_on_missing=yes validate_md5=yes flat=yes" + sudo: true + when: needcert and x509_ca_server != inventory_hostname + +- name: "Copy the CA Certificate to the ansible host" + remote_user: "{{ hostvars[x509_ca_server]['ansible_ssh_user'] }}" + delegate_to: "{{ x509_ca_server }}" + fetch: "src=/etc/easy-rsa/2.0/keys/ca.crt dest=/tmp/{{ inventory_hostname }}/ca.crt fail_on_missing=yes validate_md5=yes flat=yes" + sudo: true + when: ca_cert.stat.exists == false and x509_ca_server != inventory_hostname + +- name: "Make sure the path to the certificate exists" + shell: "mkdir -p `dirname {{ x509_cert_file }}` ; chmod 755 `dirname {{ x509_cert_file }}`" + sudo: true + +- name: "Copy the certificate to the node" + copy: "src=/tmp/{{ inventory_hostname }}/{{ x509_common_name }}.crt dest=/tmp/{{ x509_common_name }}.crt force=yes" + sudo: true + when: needcert and x509_ca_server != inventory_hostname + +- name: "Copy the certificate to the right location" + shell: "cp -f /tmp/{{ x509_common_name }}.crt {{ x509_cert_file }}" + sudo: true + when: needcert and x509_ca_server != inventory_hostname + +- name: "Copy the CA certificate to the node" + copy: "src=/tmp/{{ inventory_hostname }}/ca.crt dest={{ x509_cacert_file }}" + sudo: true + when: ca_cert.stat.exists == false and x509_ca_server != inventory_hostname + +- name: "Copy the key to the correct location" + shell: "mkdir -p `dirname {{ x509_key_file }}` ; chmod 700 `dirname {{ x509_key_file }}` ; cp /etc/easy-rsa/2.0/keys/{{ x509_common_name }}.key {{ x509_key_file }}" + sudo: true + when: needcert and x509_ca_server != inventory_hostname diff --git a/roles/easy-rsa-certificate/vars/tasks/main.yml b/roles/easy-rsa-certificate/vars/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..475415cc2e1cf8b2d9b7303f530544caf699011e --- /dev/null +++ b/roles/easy-rsa-certificate/vars/tasks/main.yml @@ -0,0 +1,3 @@ +--- +- + include: buildCert.yml diff --git a/roles/easy-rsa-certificate/vars/vars/main.yml b/roles/easy-rsa-certificate/vars/vars/main.yml new file mode 120000 index 0000000000000000000000000000000000000000..0d79d56d9fbcc141687a5879eb653e3e8a6db563 --- /dev/null +++ b/roles/easy-rsa-certificate/vars/vars/main.yml @@ -0,0 +1 @@ +readme.txt \ No newline at end of file diff --git a/roles/easy-rsa-certificate/vars/vars/readme.txt b/roles/easy-rsa-certificate/vars/vars/readme.txt new file mode 100644 index 0000000000000000000000000000000000000000..b59020414c56eab836ff7d61f866758d9593d551 --- /dev/null +++ b/roles/easy-rsa-certificate/vars/vars/readme.txt @@ -0,0 +1,7 @@ +--- +x509_key_file: "/etc/ssl/private/server.key" +x509_cert_file: "/etc/ssl/certs/server.crt" +x509_cacert_file: "/etc/ssl/certs/ca.crt" +x509_csr_args: "" +x509_sign_args: "{{ x509_csr_args }}" +x509_common_name: "{{ ansible_fqdn }}" diff --git a/roles/easy-rsa-common/defaults/main.yml b/roles/easy-rsa-common/defaults/main.yml new file mode 120000 index 0000000000000000000000000000000000000000..0d79d56d9fbcc141687a5879eb653e3e8a6db563 --- /dev/null +++ b/roles/easy-rsa-common/defaults/main.yml @@ -0,0 +1 @@ +readme.txt \ No newline at end of file diff --git a/roles/easy-rsa-common/tasks/yumList.yml b/roles/easy-rsa-common/tasks/yumList.yml index b3e4cb0d60bedb351090c75a0c3839079bd096bb..66533cb8fc5183d5cf87372d5ee36591a4670c13 100644 --- a/roles/easy-rsa-common/tasks/yumList.yml +++ b/roles/easy-rsa-common/tasks/yumList.yml @@ -3,11 +3,18 @@ name: "Install these yum packages" with_items: - gcc - - rsync - make - tcsh - bind-utils - - openssl-devel - - nfs-utils yum: "name={{ item }} state=present" +<<<<<<< HEAD sudo: true +======= +- + name: "Setting hostname" + shell: sysctl kernel.hostname={{ inventory_hostname }} + +- + name: "Restarting Network" + service: name=network state=restarted +>>>>>>> 90b67d1ef1d855521077ce6ccab2d41c55c1a3e6 diff --git a/roles/karaage3.1.17/tasks/apache.yml b/roles/karaage3.1.17/tasks/apache.yml new file mode 100644 index 0000000000000000000000000000000000000000..0a08f63e7073a0e2167f69ebcf544f7069998fec --- /dev/null +++ b/roles/karaage3.1.17/tasks/apache.yml @@ -0,0 +1,24 @@ +--- +- + name: "Install Apache2" + apt: name=apache2 state=present +- + name: "Templating default-ssl site" + template: src=default-ssl.j2 dest=/etc/apache2/sites-available/default-ssl.conf owner=www-data group=www-data +- + name: "Templating default site" + template: src=default.j2 dest=/etc/apache2/sites-available/000-default.conf owner=www-data group=www-data +- + name: "Templating ssl configuration" + template: src=ssl.conf.j2 dest=/etc/apache2/mods-available/ssl.conf owner=www-data group=www-data +- + name: "Enable ssl module" + apache2_module: state=present name=ssl + +- + name: "Enable default-ssl site" + shell: a2ensite default-ssl + +- + name: "Restarting Apache2" + service: name=apache2 state=restarted diff --git a/roles/karaage3.1.17/tasks/karaage.yml b/roles/karaage3.1.17/tasks/karaage.yml new file mode 100644 index 0000000000000000000000000000000000000000..ecd157bd22a3d09178a4b3646d23bc818f6924c7 --- /dev/null +++ b/roles/karaage3.1.17/tasks/karaage.yml @@ -0,0 +1,77 @@ +--- +- + name: "Installing prerequisites" + apt: name={{ item }} update_cache=yes + with_items: + - libxml2-dev + - libxslt1-dev + - python-lxml + - libcrack2-dev + - csstidy + - ldap-utils + - python-cracklib + - git +- + name: "Getting Karaage from Github" + git: repo="https://github.com/monash-merc/karaage.git" dest="/root/karaage3.1.7" +- + name: "Installing Karaage Dependencies" + pip: name={{ item }} extra_args="--upgrade" + with_items: + - six + - MySQL-python + - mincss + - slimit + - ply +- + name: "Restrict Django version to 1.7.8" + replace: dest=/root/karaage3.1.7/setup.py regexp="Django >= 1.7" replace="Django == 1.7.8" +- + name: "Installing Karaage from source" + shell: python setup.py install + args: + chdir: /root/karaage3.1.7 + creates: /root/karaage3.1.7/build/bdist.linux-x86_64 +- + name: "Templating Karaage settings" + template: src=settings.py.j2 dest=/etc/karaage3/settings.py owner=root group=www-data mode=0640 +- + name: "Creating karaage3 in /var/log" + file: path=/var/log/karaage3 state=directory owner=www-data group=www-data mode=0755 +- + name: "Creating karaage3 in /var/lib" + file: path=/var/lib/karaage3 state=directory owner=root group=www-data mode=0775 +- + name: "Change permissions for /var/www" + file: path=/var/www state=directory owner=root group=www-data mode=0775 +- + name: "enabling Karaage configuration" + shell: a2enconf karaage3-wsgi +- + name: "Installing other packages" + apt: name={{ item }} update_cache=yes + with_items: + - python-kgusage + - karaage-cluster-tools +- + name: "Set Secret Key" + lineinfile: dest=/etc/karaage3/settings.py regexp="SECRET_KEY = ''" line="SECRET_KEY = 'imkaraage'" state=present +- + name: " Create DB tables" + shell: kg-manage migrate +- + name: "Reloading apache" + service: name=apache2 state=reloaded +- + name: "Restarting Celery" + service: name=karaage3-celery state=restarted +- + name: Templating ldap.conf + template: src=client-ldap.conf.j2 dest=/etc/ldap/ldap.conf owner=root group=root mode=0644 + when: ansible_fqdn != "{% for host in groups['ldap-server'] %}{{ hostvars[host]['ansible_fqdn'] }}{% endfor %}" +- + name: Add missing ldap entries + shell: kg-manage migrate_ldap +- + name: "Reloading apache" + service: name=apache2 state=reloaded diff --git a/roles/karaage3.1.17/tasks/main.yml b/roles/karaage3.1.17/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..41d82bd8670b8bcfca7d4c0250ba7440d2c8de79 --- /dev/null +++ b/roles/karaage3.1.17/tasks/main.yml @@ -0,0 +1,5 @@ +--- + - include: prerequisites.yml + - include: apache.yml + - include: mysql.yml + - include: karaage.yml diff --git a/roles/karaage3.1.17/tasks/mysql.yml b/roles/karaage3.1.17/tasks/mysql.yml new file mode 100644 index 0000000000000000000000000000000000000000..9a459cc61f64c2b5679f295a68c240362d5d83eb --- /dev/null +++ b/roles/karaage3.1.17/tasks/mysql.yml @@ -0,0 +1,47 @@ +--- +- + name: "Installing MySQL" + apt: name="{{ item }}" update_cache=yes cache_valid_time=3600 state=present + with_items: + - python + - python-dev + - libmysqlclient-dev + - python-pip + - libapache2-mod-wsgi + - python-mysql.connector + - mysql-server + - python-mysqldb +- + name: "Starting MySQL" + service: name=mysql state=started enabled=true +#- +# name: "Templating .my.cnf" +# template: src=".my.cnf.j2" dest=/root/.my.cnf owner=root group=root mode=0600 +- + name: "Templating karaage.cnf" + template: src="karaage.cnf.j2" dest=/etc/mysql/conf.d/karaage.cnf owner=root group=root +- + name: "Adding root" + sudo: true + mysql_user: name=root host="{{ item }}" password="{{ mysql_root_password }}" login_user=root login_password="{{ mysql_root_password }}" check_implicit_admin=yes priv="*.*:ALL,GRANT" + with_items: + - "{{ ansible_hostname }}" + - 127.0.0.1 + - ::1 + - localhost +- + name: "Adding Karaage Database" + mysql_db: name=karaage state=present login_user=root login_password={{ mysql_root_password }} +- + name: "Giving priviliges to karaage user" + mysql_user: name=karaage password={{ karaage_sql_password }} login_user=root login_password={{ mysql_root_password }} priv=karaage.*:ALL state=present + +#- +# name: "Templating mysql settings" +# template: src="sqlsettings.sql.j2" dest=/root/sqlsettings.sql owner=root group=root mode=0600 +#- +# name: "Setting root and karaage accounts" +# shell: mysql < /root/sqlsettings.sql +- + name: "Starting MySQL" + service: name=mysql state=restarted diff --git a/roles/karaage3.1.17/tasks/prerequisites.yml b/roles/karaage3.1.17/tasks/prerequisites.yml new file mode 100644 index 0000000000000000000000000000000000000000..8ca53ad498ec98d4550b7481999ee73f47570113 --- /dev/null +++ b/roles/karaage3.1.17/tasks/prerequisites.yml @@ -0,0 +1,18 @@ +--- +- + name: "Installing prereq packages" + apt: name={{ item }} update_cache=yes + with_items: + - debian-keyring +- + apt_key: "url=http://code.vpac.org/debian/vpac-debian-key.gpg state=present" + name: "Installing the VPAC Debian Archive signing key" +- + apt_repository: "repo='deb http://code.vpac.org/debian jessie main' state=present" + name: "Adding VPAC repository in the source list" +- + apt_repository: "repo='deb-src http://code.vpac.org/debian jessie main' state=present" + name: "Adding VPAC source repository" +- + apt: update_cache=yes + name: "Upgrading apt..." diff --git a/roles/karaage3.1.17/templates/.my.cnf.j2 b/roles/karaage3.1.17/templates/.my.cnf.j2 new file mode 100644 index 0000000000000000000000000000000000000000..0618352d5c653e475d687bd5d6e39c69098bb964 --- /dev/null +++ b/roles/karaage3.1.17/templates/.my.cnf.j2 @@ -0,0 +1,4 @@ +[client] +user = root +password = {{ mysql_root_password }} + diff --git a/roles/karaage3.1.17/templates/client-ldap.conf.j2 b/roles/karaage3.1.17/templates/client-ldap.conf.j2 new file mode 100644 index 0000000000000000000000000000000000000000..f9c9128b7a92214aba1585433e83aa7fbbc1a5f9 --- /dev/null +++ b/roles/karaage3.1.17/templates/client-ldap.conf.j2 @@ -0,0 +1,17 @@ +# +# LDAP Defaults +# + +# See ldap.conf(5) for details +# This file should be world readable but not world writable. + +#BASE dc=example,dc=com +#URI ldap://{% for host in groups['ldap-server'] %}{{ hostvars[host]['ansible_fqdn'] }}{% endfor %} ldaps://{% for host in groups['ldap-server'] %}{{ hostvars[host]['ansible_fqdn'] }}{% endfor %} + +#SIZELIMIT 12 +#TIMELIMIT 15 +#DEREF never + +# TLS certificates (needed for GnuTLS) +TLS_CACERT {{ x509_cacert_file }} +TLS_REQCERT allow diff --git a/roles/karaage3.1.17/templates/default-ssl.j2 b/roles/karaage3.1.17/templates/default-ssl.j2 new file mode 100644 index 0000000000000000000000000000000000000000..10c9fd7d0ce285aad05ce1a6480b350c2fa3e09b --- /dev/null +++ b/roles/karaage3.1.17/templates/default-ssl.j2 @@ -0,0 +1,161 @@ +<IfModule mod_ssl.c> +<VirtualHost _default_:443> + ServerAdmin webmaster@localhost + + DocumentRoot /var/www + <Directory /> + Options FollowSymLinks + AllowOverride None + </Directory> + <Directory /var/www/> + Options Indexes FollowSymLinks MultiViews + AllowOverride None + Order allow,deny + allow from all + </Directory> + + ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ + <Directory "/usr/lib/cgi-bin"> + AllowOverride None + Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch + Order allow,deny + Allow from all + </Directory> + + ErrorLog ${APACHE_LOG_DIR}/error.log + + # Possible values include: debug, info, notice, warn, error, crit, + # alert, emerg. + LogLevel warn + + CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined + + # SSL Engine Switch: + # Enable/Disable SSL for this virtual host. + SSLEngine on + + # A self-signed (snakeoil) certificate can be created by installing + # the ssl-cert package. See + # /usr/share/doc/apache2.2-common/README.Debian.gz for more info. + # If both key and certificate are stored in the same file, only the + # SSLCertificateFile directive is needed. + SSLCertificateFile /etc/ssl/certs/server.crt + SSLCertificateKeyFile /etc/ssl/private/server.key + # Server Certificate Chain: + # Point SSLCertificateChainFile at a file containing the + # concatenation of PEM encoded CA certificates which form the + # certificate chain for the server certificate. Alternatively + # when the CA certificates are directly appended to the server + # certificate for convinience. + #SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt + + # Certificate Authority (CA): + # Set the CA certificate verification path where to find CA + # certificates for client authentication or alternatively one + # huge file containing all of them (file must be PEM encoded) + # Note: Inside SSLCACertificatePath you need hash symlinks + # to point to the certificate files. Use the provided + # Makefile to update the hash symlinks after changes. + SSLCACertificatePath /etc/ssl/certs/ + SSLCACertificateFile /etc/ssl/certs/ca.crt + + # Certificate Revocation Lists (CRL): + # Set the CA revocation path where to find CA CRLs for client + # authentication or alternatively one huge file containing all + # of them (file must be PEM encoded) + # Note: Inside SSLCARevocationPath you need hash symlinks + # to point to the certificate files. Use the provided + # Makefile to update the hash symlinks after changes. + #SSLCARevocationPath /etc/apache2/ssl.crl/ + #SSLCARevocationFile /etc/apache2/ssl.crl/ca-bundle.crl + + # Client Authentication (Type): + # Client certificate verification type and depth. Types are + # none, optional, require and optional_no_ca. Depth is a + # number which specifies how deeply to verify the certificate + # issuer chain before deciding the certificate is not valid. + #SSLVerifyClient require + #SSLVerifyDepth 10 + + # Access Control: + # With SSLRequire you can do per-directory access control based + # on arbitrary complex boolean expressions containing server + # variable checks and other lookup directives. The syntax is a + # mixture between C and Perl. See the mod_ssl documentation + # for more details. + #<Location /> + #SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \ + # and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \ + # and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \ + # and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \ + # and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \ + # or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/ + #</Location> + + # SSL Engine Options: + # Set various options for the SSL engine. + # o FakeBasicAuth: + # Translate the client X.509 into a Basic Authorisation. This means that + # the standard Auth/DBMAuth methods can be used for access control. The + # user name is the `one line' version of the client's X.509 certificate. + # Note that no password is obtained from the user. Every entry in the user + # file needs this password: `xxj31ZMTZzkVA'. + # o ExportCertData: + # This exports two additional environment variables: SSL_CLIENT_CERT and + # SSL_SERVER_CERT. These contain the PEM-encoded certificates of the + # server (always existing) and the client (only existing when client + # authentication is used). This can be used to import the certificates + # into CGI scripts. + # o StdEnvVars: + # This exports the standard SSL/TLS related `SSL_*' environment variables. + # Per default this exportation is switched off for performance reasons, + # because the extraction step is an expensive operation and is usually + # useless for serving static content. So one usually enables the + # exportation for CGI and SSI requests only. + # o StrictRequire: + # This denies access when "SSLRequireSSL" or "SSLRequire" applied even + # under a "Satisfy any" situation, i.e. when it applies access is denied + # and no other module can change it. + # o OptRenegotiate: + # This enables optimized SSL connection renegotiation handling when SSL + # directives are used in per-directory context. + #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire + <FilesMatch "\.(cgi|shtml|phtml|php)$"> + SSLOptions +StdEnvVars + </FilesMatch> + <Directory /usr/lib/cgi-bin> + SSLOptions +StdEnvVars + </Directory> + + # SSL Protocol Adjustments: + # The safe and default but still SSL/TLS standard compliant shutdown + # approach is that mod_ssl sends the close notify alert but doesn't wait for + # the close notify alert from client. When you need a different shutdown + # approach you can use one of the following variables: + # o ssl-unclean-shutdown: + # This forces an unclean shutdown when the connection is closed, i.e. no + # SSL close notify alert is send or allowed to received. This violates + # the SSL/TLS standard but is needed for some brain-dead browsers. Use + # this when you receive I/O errors because of the standard approach where + # mod_ssl sends the close notify alert. + # o ssl-accurate-shutdown: + # This forces an accurate shutdown when the connection is closed, i.e. a + # SSL close notify alert is send and mod_ssl waits for the close notify + # alert of the client. This is 100% SSL/TLS standard compliant, but in + # practice often causes hanging connections with brain-dead browsers. Use + # this only for browsers where you know that their SSL implementation + # works correctly. + # Notice: Most problems of broken clients are also related to the HTTP + # keep-alive facility, so you usually additionally want to disable + # keep-alive for those clients, too. Use variable "nokeepalive" for this. + # Similarly, one has to force some clients to use HTTP/1.0 to workaround + # their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and + # "force-response-1.0" for this. + BrowserMatch "MSIE [2-6]" \ + nokeepalive ssl-unclean-shutdown \ + downgrade-1.0 force-response-1.0 + # MSIE 7 and newer should be able to use keepalive + BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown + +</VirtualHost> +</IfModule> diff --git a/roles/karaage3.1.17/templates/default.j2 b/roles/karaage3.1.17/templates/default.j2 new file mode 100644 index 0000000000000000000000000000000000000000..e79e43d03bac20f7d97939307f1b2dbafdbde24b --- /dev/null +++ b/roles/karaage3.1.17/templates/default.j2 @@ -0,0 +1,37 @@ +<VirtualHost *:80> + ServerAdmin webmaster@localhost + ServerName {{ ansible_nodename }} + Redirect permanent / https://{{ ansible_nodename }}/ + + DocumentRoot /var/www + <Directory /> + Options FollowSymLinks + AllowOverride None + </Directory> + <Directory /var/www/> + Options Indexes FollowSymLinks MultiViews + AllowOverride None + Order allow,deny + allow from all + </Directory> + <Directory /etc/karaage3> + Options FollowSymLinks + AllowOverride None + </Directory> + + ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ + <Directory "/usr/lib/cgi-bin"> + AllowOverride None + Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch + Order allow,deny + Allow from all + </Directory> + + ErrorLog ${APACHE_LOG_DIR}/error.log + + # Possible values include: debug, info, notice, warn, error, crit, + # alert, emerg. + LogLevel warn + + CustomLog ${APACHE_LOG_DIR}/access.log combined +</VirtualHost> diff --git a/roles/karaage3.1.17/templates/karaage.cnf.j2 b/roles/karaage3.1.17/templates/karaage.cnf.j2 new file mode 100644 index 0000000000000000000000000000000000000000..f32a6e4e4d854b0be3f96170136db120cf8feadc --- /dev/null +++ b/roles/karaage3.1.17/templates/karaage.cnf.j2 @@ -0,0 +1,7 @@ +[mysqld] +character_set_server=utf8 +default-storage-engine = innodb +sql_mode = STRICT_ALL_TABLES + +[client] +default-character-set = utf8 diff --git a/roles/karaage3.1.17/templates/min.css.j2 b/roles/karaage3.1.17/templates/min.css.j2 new file mode 100644 index 0000000000000000000000000000000000000000..ed42d16c651652ad85d989e9e9b2375c3874fc30 --- /dev/null +++ b/roles/karaage3.1.17/templates/min.css.j2 @@ -0,0 +1 @@ +body{margin:0;padding:0;font-size:11px;font-family:"Lucida Grande","DejaVu Sans","Bitstream Vera Sans",Verdana,Arial,sans-serif;color:#333;background:#fff}a:link,a:visited{color:#5b80b2;text-decoration:none}a:hover{color:#036}a img{border:none}a.section:link,a.section:visited{color:white;text-decoration:none}p,ol,ul,dl{margin:.2em 0 .8em 0}p{padding:0;line-height:140%}h1,h2,h3,h4,h5{font-weight:bold}h1{font-size:18px;color:#666;padding:0 6px 0 0;margin:0 0 .2em 0}h2{font-size:16px;margin:1em 0 .5em 0}h2.subhead{font-weight:normal;margin-top:0}h3{font-size:14px;margin:.8em 0 .3em 0;color:#666;font-weight:bold}h4{font-size:12px;margin:1em 0 .8em 0;padding-bottom:3px}h5{font-size:10px;margin:1.5em 0 .5em 0;color:#666;text-transform:uppercase;letter-spacing:1px}ul li{list-style-type:square;padding:1px 0}ul.plainlist{margin-left:0!important}ul.plainlist li{list-style-type:none}li.selected{font-weight:bold}li ul{margin-bottom:0}dt{font-weight:bold;margin-top:4px}dd{margin-left:0}blockquote{color:#777;margin-left:2px;padding-left:10px;border-left:5px solid #ddd}code,pre{font-family:"Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace;background:inherit;color:#666}pre.literal-block{margin:10px;background:#eee;padding:6px 8px}code strong{color:#930}hr{clear:both;color:#eee;background-color:#eee;height:1px;border:none;margin:0;padding:0;line-height:1px}.small{font-size:11px}.tiny{font-size:10px}p.tiny{margin-top:-2px}.mini{font-size:9px}p.mini{margin-top:-3px}.help,p.help{font-size:10px!important;color:#999}img.help-tooltip{cursor:help}p img,h1 img,h2 img,h3 img,h4 img,td img{vertical-align:middle}.quiet,a.quiet:link,a.quiet:visited{color:#999!important;font-weight:normal!important}.quiet strong{font-weight:bold!important}.float-right{float:right}.float-left{float:left}.clear{clear:both}.align-left{text-align:left}.align-right{text-align:right}.example{margin:10px 0;padding:5px 10px;background:#efefef}.nowrap{white-space:nowrap}table{border-collapse:collapse;border-color:#ccc;overflow:auto;width:100%}td,th{line-height:13px;border:1px solid #ddd;vertical-align:top;padding:5px;font-family:"Lucida Grande",Verdana,Arial,sans-serif}table.keyvalue th{width:100px}th{text-align:left;font-weight:bold;color:#333;background:#7CA0A0}tbody tr:nth-child(even){background:#DDD}tbody tr:nth-child(odd){background:#FFF}tfoot td{font-weight:bold}table p{padding:0}table thead th.orderable>a{padding-right:20px}table thead th.orderable.asc>a{background:url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAYAAAD68A/GAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHpJREFUeNpi1Gv5v5mBgcGHAT/YwgJStDjmC15VsUt4fBhBDKCp/7t9v4EF/zCAhRhYGP6D6dLNXAyHcj4yMsJ0gRQXOvxkeP+dCcwX5PzH0H+AneFSDSPjhw8fGBiRrQApdtP4B2bvusEEVgRiYyiEKQbRyIpAACDAAMPBLkZgoCJMAAAAAElFTkSuQmCC") right center no-repeat}table thead th.orderable.desc>a{background:url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAYAAAD68A/GAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGxJREFUeNpiZEADei3//4PoSzWMjCD6w4cPYHEmdEVuGv8YQBimQUBAAFUhSKLQ4SeDFP9fMAaxYYpBgAWmqNv3G1hAjPcfVOI/A0islAGk+CMjI0jR4pgvDPhA7BIesIlbgAwfBvxgC0CAAQCaPS6NRSFjpQAAAABJRU5ErkJggg==") right center no-repeat}.yes{padding:0 0 0 16px;background:url("data:image/gif;charset=utf-8;base64,R0lGODlhCgAKANUCAEKtP0StQf8AAG2/a97w3qbYpd/x3mu/aajZp/b79vT69MnnyK7crXTDcqraqcfmxtLr0VG0T0ivRpbRlF24Wr7jveHy4Pv9+53UnPn8+cjnx4LIgNfu1v///37HfKfZpq/crmG6XgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAIALAAAAAAKAAoAAAZIQIGAUDgMEASh4BEANAGAxRAaaHoYAAPCCZUoOIDPAdCAQhIRgJGiAG0uE+igAMB0MhYoAFmtJEJcBgILVU8BGkpEAwMOggJBADs=") 0 .25em no-repeat}.no{padding:0 0 0 16px;background:url("data:image/gif;charset=utf-8;base64,R0lGODlhCgAKAMQCAN4hIf/+/v///+EzM+AuLvGkpORISPW+vudgYOhiYvKpqeZYWPbAwOdaWup1dfOurvW7u++Rkepycu6PjwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAIALAAAAAAKAAoAAAUtoCAcyEA0jyhEQOs6AuPOQJHQrjEAQe+3O98PcMMBDAdjTTDBSVSQEmGhEIUAADs=") 0 .25em no-repeat}.locked{padding:5px 0 5px 16px;background:url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAOCAYAAAAbvf3sAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gQLBAgC57+1xgAAAIx0RVh0Q29tbWVudABNZW51LXNpemVkIGljb24KPT09PT09PT09PQoKKGMpIDIwMDMgSmFrdWIgJ2ppbW1hYycgU3RlaW5lciwgCmh0dHA6Ly9qaW1tYWMubXVzaWNoYWxsLmN6CgpjcmVhdGVkIHdpdGggdGhlIEdJTVAsCmh0dHA6Ly93d3cuZ2ltcC5vcmdnisdHAAABtUlEQVQoz42SPWtTYRTHf/clJiHUFyINKddY6KLGZLFDQPwIWfwEWZ2EDAoZdLm4C34FHbIF6hYzRHA3GEWudmggRltKmsp9fXIeh16T2skDZzjw/53zP4dj8G88Ah4ChbROgA7wAdDnhVcrlcqrTqeTjEYj7Xme9jxP9/t9abfbJ7lc7gVgrdTFYvGZ67pqMBgEjUZj4ThO5DhO1Gw2Va/X067r+sDjFVCr1Q6Hw+Eyn8/vX7BIvV5X3W5XgHcAJoCIXBMRHQSBXARms5mUNjcNYOcv0JpNJ8r78snavuHsFApZbVumti1TZ2xLl4uFzI/JPlvFwk2gZQD69csn3L93B53ulcTBaoJSMcHRAXt7b3n+ZowN8GC3ij8/ZPHrGwezOUkSp3IDFYWUN4Rq6ayZDWAYBstowfQ44Hb1LnEUpnqNCn1OJmNElmtAREhCn9LlDOPRR+I4WluKfLY2BNM8NwFRiCimC7hV3yWJzywZBkgccvT1PYZprwGNyaVcnu2y8N0bo1IAA5bRb65nc2TTg9sA8+ln/OOfhMEpVwBlJgBYloU2QZTB/DRc2Wylj/U/+fQPTYDNou0q7gEAAAAASUVORK5CYII=") 0 .25em no-repeat}input,textarea,select,.form-row p{margin:2px 0;padding:2px 3px;vertical-align:middle;font-family:"Lucida Grande",Verdana,Arial,sans-serif;font-weight:normal}textarea{vertical-align:top!important}input[type=text],input[type=password],textarea,select,.vTextField{border:1px solid #ccc}.button,input[type=submit],input[type=button]{background:white url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfAMQAAPf39+3t7efn5+rq6v39/fr6+vDw8PPz8/Pz8uTk5PHx8eHh4e7u7vv7+/j4+Ojo6PX19eLi4vz8/Ozs7Pn5+fb29ubm5v7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAARAB8AAAWOICaOZGmeaKqubOu6VyzPdG3XRK7vfC79wKDw1ygaj8hiYclsOpeUqHRKjTqu2Kz2Cuh6v+BuZUwum8eQtHrNTh/e8Lj8gFDY7/i83cDv+/98DIKDhIWCAYiJiouIE46PkJGOA5SVlpeUD5qbnJ2aAqChoqOgFqanqKmmCaytrq+sEbKztLWyC7i5uru4IQA7") bottom repeat-x;padding:3px 5px;color:black;border:1px solid #bbb;border-color:#ddd #aaa #aaa #ddd}.button:active,input[type=submit]:active,input[type=button]:active{background-image:url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfALMAAP////j4+P7+/vb29vHx8fv7++3t7efn5+Li4v39/erq6u7u7uTk5PT09Ojo6Pz8/CH5BAAAAAAALAAAAAARAB8AAARnEMlJq72W6c27PmAojmRJOmiqrqjivnDsGnRt33iOL3zv/zyCcEgsGo/GhnLJbCoH0Kh0Sq1SA9isdsvter/cgnhMLpvP5od6zW6rE/C4fA4X2O/4vH6vB/j/gIGCg4SFhoeIiYqKEQA7");background-position:top}.button[disabled],input[type=submit][disabled],input[type=button][disabled]{background-image:url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfAMQAAPf39+3t7efn5+rq6v39/fr6+vDw8PPz8/Pz8uTk5PHx8eHh4e7u7vv7+/j4+Ojo6PX19eLi4vz8/Ozs7Pn5+fb29ubm5v7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAARAB8AAAWOICaOZGmeaKqubOu6VyzPdG3XRK7vfC79wKDw1ygaj8hiYclsOpeUqHRKjTqu2Kz2Cuh6v+BuZUwum8eQtHrNTh/e8Lj8gFDY7/i83cDv+/98DIKDhIWCAYiJiouIE46PkJGOA5SVlpeUD5qbnJ2aAqChoqOgFqanqKmmCaytrq+sEbKztLWyC7i5uru4IQA7");background-position:bottom;opacity:.4}.button.default,input[type=submit].default,input[type=button].default{border:2px solid #5b80b2;background:#7CA0C7 url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfAOYAALzS6bDJ44+w0YGlyrvR6LTM5Yiqzn6iyIOny4CkyaG+242u0KK+27jP53ugxoiqzYaozJy62Jq413ugx4qsz5+82aTA3K7H4oSny5+82rbN5rnQ6KTA3afC3rLL5JS01KnE37bO5n+kyZy52HyhyK7I4bLK5LjP5rnQ55W01KnD35e21X6jyK7H4ZKy06vG4XyiyIyt0JSz1LHJ44uszpe11nyhx7rQ55e21pGx06fB3oqszn2ix5Kx0pe11aS/3IKlyqzG4KbC3pq31rvR6azF4LXM5Yyu0KvF4bPK45m41qfC3bvS6H2hx6zG4YKmyrPK5KzF4ZWz1Iyuz5q41oapzYCjyZKy0qrE37fN5qrD4J+72pCw0ZGy0oGmyo+v0bTN5bXN5Zm415262Jy62YWozIWpzKrD34aozbrR6I+v0rjO5rjO56fB3anE4ISmy7PL5LfO5p+72bbN5YapzHuhxrfP5nygx7fP56K924+w0rHJ4qXA3Yurz36jyYuszyH5BAAAAAAALAAAAAARAB8AAAf/gACCg4SFggQETERMiIhEBGmPjAQbGzc3KCiWmZY3lRsoaw2jdicnDaeoqHhsDRohr7AhWVlxcxq4IbBgRgW+Yb1hBUZgvsYmHlAeScjIHs8mJnBQcAEBM9bY1nvW2dgXLS0lLRcl5ePm4BcXRUEvTkhR7e8vQVFIL0VIKm5YICAqAArUgiWgljNCdCzp0KZDh4U6OugQIkTiEg4cfnCwYCGjBT4cNXLkoIABg5IoTSpYeTIPgwoZMmypAFNmBpoV5MSsMGbEiAgRfgIdQ8YnGaARJChVMoQKFaZKxYiRoETCkBorVtTwsQIHDh8+cGD9qjXFBxkyUpiVcvbD2hQyqT646JEjx5Uec7u4sJsjrwsBArgADvxFQGE1AvQMjhFjgWPHMY4cedx4yhEKmGnQ2EFBM4UdfSj8+bzjgQHTBlI/WK2atYEyaCCYgUDbDB0IVcxUKUMbAgIMCIL/fhMcOIbjv58AGeBlOfMnA6I7j55AhIjq1a9bSZBgO3YeLFgcGH9APPny4f3AsMGeRBMSJHjAaGJDfhMeJO44mLDfQR3+EwTYnwMOBAIAOw==") bottom repeat-x;font-weight:bold;color:white}.button.default:active,input[type=submit].default:active,input[type=button]:active{background-image:url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfAOYAALzS6bDJ44+w0YGlyrvR6LTM5Yiqzn6iyIOny4CkyaG+242u0KK+27jP53ugxoiqzYaozJy62Jq413ugx4qsz5+82aTA3K7H4oSny5+82rbN5rnQ6KTA3afC3rLL5JS01KnE37bO5n+kyZy52HyhyK7I4bLK5LjP5rnQ55W01KnD35e21X6jyK7H4ZKy06vG4XyiyIyt0JSz1LHJ44uszpe11nyhx7rQ55e21pGx06fB3oqszn2ix5Kx0pe11aS/3IKlyqzG4KbC3pq31rvR6azF4LXM5Yyu0KvF4bPK45m41qfC3bvS6H2hx6zG4YKmyrPK5KzF4ZWz1Iyuz5q41oapzYCjyZKy0qrE37fN5qrD4J+72pCw0ZGy0oGmyo+v0bTN5bXN5Zm415262Jy62YWozIWpzKrD34aozbrR6I+v0rjO5rjO56fB3anE4ISmy7PL5LfO5p+72bbN5YapzHuhxrfP5nygx7fP56K924+w0rHJ4qXA3Yurz36jyYuszyH5BAAAAAAALAAAAAARAB8AAAf/gHcOE4MOdYQTiYUODjA2jyRNJCQ8ME02lU08lCwsB58HnqChnX4JIiKnp6lWCQmtqk9AA16ztE8Duba5CBgIv71vv74Yxb1laBBmEMxmdBBVZlVlzBAPBtcG2g/c290GFOE0NDsU4xQ7fRR/6DsxMQvx8TFHR/LwU0cCAlz7/F8CAKoRoMefix45clzpcbCLC4U5GrpI8UGGjBQUpVT8kDGFjA81Vqyo4WMFDhw+fOAIiXKkhJdKhlChEvOlGDESlEgYMmbEiAgRfgIdQ8YnGaARKmTIsKWCUqYZnFaQs7SCAgYMrmrFqqBr1jwMOHD4wcGChbEW+Jgla5aDEB1LqDq06dAhro4OOoQIwbtEhRssIECoEExYC5bBWs4UCfLCCZIoixu/CBIFyYsiSC60aFGixYUSnzuD1nzhQoAAM06nPr3ntOrUJjxA8ZAkdmwPuE2YgAMFDhgjBYKHAR6mgBEwwZNrCLGceYgsWeLM0UA9BPM1DbLbOXGiQXfv3vGwabBhw40bKFCYT2/+RvkNKAgQYEKEiXz5RAikyW+fAID/AAYo4H+BAAA7");background-position:top}.button[disabled].default,input[type=submit][disabled].default,input[type=button][disabled].default{background-image:url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfAOYAALzS6bDJ44+w0YGlyrvR6LTM5Yiqzn6iyIOny4CkyaG+242u0KK+27jP53ugxoiqzYaozJy62Jq413ugx4qsz5+82aTA3K7H4oSny5+82rbN5rnQ6KTA3afC3rLL5JS01KnE37bO5n+kyZy52HyhyK7I4bLK5LjP5rnQ55W01KnD35e21X6jyK7H4ZKy06vG4XyiyIyt0JSz1LHJ44uszpe11nyhx7rQ55e21pGx06fB3oqszn2ix5Kx0pe11aS/3IKlyqzG4KbC3pq31rvR6azF4LXM5Yyu0KvF4bPK45m41qfC3bvS6H2hx6zG4YKmyrPK5KzF4ZWz1Iyuz5q41oapzYCjyZKy0qrE37fN5qrD4J+72pCw0ZGy0oGmyo+v0bTN5bXN5Zm415262Jy62YWozIWpzKrD34aozbrR6I+v0rjO5rjO56fB3anE4ISmy7PL5LfO5p+72bbN5YapzHuhxrfP5nygx7fP56K924+w0rHJ4qXA3Yurz36jyYuszyH5BAAAAAAALAAAAAARAB8AAAf/gACCg4SFggQETERMiIhEBGmPjAQbGzc3KCiWmZY3lRsoaw2jdicnDaeoqHhsDRohr7AhWVlxcxq4IbBgRgW+Yb1hBUZgvsYmHlAeScjIHs8mJnBQcAEBM9bY1nvW2dgXLS0lLRcl5ePm4BcXRUEvTkhR7e8vQVFIL0VIKm5YICAqAArUgiWgljNCdCzp0KZDh4U6OugQIkTiEg4cfnCwYCGjBT4cNXLkoIABg5IoTSpYeTIPgwoZMmypAFNmBpoV5MSsMGbEiAgRfgIdQ8YnGaARJChVMoQKFaZKxYiRoETCkBorVtTwsQIHDh8+cGD9qjXFBxkyUpiVcvbD2hQyqT646JEjx5Uec7u4sJsjrwsBArgADvxFQGE1AvQMjhFjgWPHMY4cedx4yhEKmGnQ2EFBM4UdfSj8+bzjgQHTBlI/WK2atYEyaCCYgUDbDB0IVcxUKUMbAgIMCIL/fhMcOIbjv58AGeBlOfMnA6I7j55AhIjq1a9bSZBgO3YeLFgcGH9APPny4f3AsMGeRBMSJHjAaGJDfhMeJO44mLDfQR3+EwTYnwMOBAIAOw==");background-position:bottom;opacity:.4}.submit-row .button.default,.submit-row input.default{float:right}.module,.module.object-tools{border:1px solid #666;margin:0 0 10px 0;background:white;width:100%}.module p,.module ul,.module h3,.module h4,.module dl,.module pre,.module form,.module .table-container,.module .object-tools{margin:0 4px 2px 4px}.module table{}.module blockquote{margin-left:12px}.module h2,.module caption,.inline-group h2{margin-top:0;margin-bottom:4px;padding:2px 5px 3px 5px;font-size:11px;text-align:left;font-weight:bold;background:#7CA0C7;color:#666}.module h3{margin-top:10px;margin-bottom:2px;padding:2px 5px 3px 5px;font-size:11px;text-align:left;font-weight:bold;background-color:#C7C7A0}ul.messagelist{padding:0 0 5px 0;margin:0}ul.messagelist li{display:block;padding:4px 5px 4px 25px;margin:0 0 3px 0;border-bottom:1px solid #ddd;color:#666;background:#ffc url("data:image/gif;charset=utf-8;base64,R0lGODlhEAAQANUAAAAAAP////D78Pr++tLz0ZHeja/orLDprbXrsrzsusvxydf01tbz1eH34OT34+b45XrOc37SeIHWe4HVe4/eipTgj7ztudDyztXz02C6VmK7WGnBYG/FZnDFZ3nOcXvQc3nNcfH68EitO06wQlSzSFa0S1m2TWjAXW3EY/39/f///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACoALAAAAAAQABAAAAZyQJVwSCwaFZSIpLIwCh8okXQKEhQdpqlWpLEON9spSfQZWsJSQ0eKEUamp6khtRZVhHFpKD5P5SFCYFIpIQkpKRNTZSoQUwyHiFoFQghij4laF0IDGWIeWxxEGCNoIiUORQSdWxsNTgMHIBsbHxZOt0ZBADs=") 5px .3em no-repeat}ul.messagelist li.warning{background-image:url("data:image/gif;charset=utf-8;base64,R0lGODlhEAAQALMPAP/BA//BBv/VVP/YYP/QQv/LLf/TTv/ZZv/TS//DDP/NNv/CCf/ccv39/f/AAP///yH5BAEAAA8ALAAAAAAQABAAAAQ+8MlJq714ppApc87QSQsIjAcICl3gNA2YDSAMIhhQx7IlqDYQwaJ68XoTQ3HpUFCWQdWEAD2CChKm1jGyRAAAOw==")}ul.messagelist li.error{background-image:url("data:image/gif;charset=utf-8;base64,R0lGODlhEAAQANUfAP9UVP9aWv9OTv/5+f/e3v+urv/MzP/t7f97e/8kJP9RUf8VFf/h4f91df85Of8JCf+fn//Gxv/b2/9gYP88PP8YGP+lpf8nJ//AwP/Pz//Jyf94eP8wMPv7+/8zM/////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAB8ALAAAAAAQABAAAAZcwI9wSCwaMY3ABJExChkOkHQqOBQJlakWdLEOPdstYFgIhw3CgHmLEHKknbg8LlUIwaD5XDr+KNZaG0IWgFMRQgMJhRREBg9rCwRFGopbHhJOAxACHh4ABU6hRkEAOw==")}.errornote{display:block;padding:4px 5px 4px 25px;margin:0 0 3px 0;border:1px solid red;color:red;background:#ffc url("data:image/gif;charset=utf-8;base64,R0lGODlhEAAQANUfAP9UVP9aWv9OTv/5+f/e3v+urv/MzP/t7f97e/8kJP9RUf8VFf/h4f91df85Of8JCf+fn//Gxv/b2/9gYP88PP8YGP+lpf8nJ//AwP/Pz//Jyf94eP8wMPv7+/8zM/////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAB8ALAAAAAAQABAAAAZcwI9wSCwaMY3ABJExChkOkHQqOBQJlakWdLEOPdstYFgIhw3CgHmLEHKknbg8LlUIwaD5XDr+KNZaG0IWgFMRQgMJhRREBg9rCwRFGopbHhJOAxACHh4ABU6hRkEAOw==") 5px .3em no-repeat}ul.errorlist{margin:0!important;padding:0!important}.errorlist li{display:block;padding:4px 5px 4px 25px;margin:0 0 3px 0;border:1px solid red;color:white;background:red url("data:image/gif;charset=utf-8;base64,R0lGODlhEAAQALMPAP/BA//BBv/VVP/YYP/QQv/LLf/TTv/ZZv/TS//DDP/NNv/CCf/ccv39/f/AAP///yH5BAEAAA8ALAAAAAAQABAAAAQ+8MlJq714ppApc87QSQsIjAcICl3gNA2YDSAMIhhQx7IlqDYQwaJ68XoTQ3HpUFCWQdWEAD2CChKm1jGyRAAAOw==") 5px .3em no-repeat}.errorlist li a{color:white;text-decoration:underline}td ul.errorlist{margin:0!important;padding:0!important}td ul.errorlist li{margin:0!important}.errors{background:#ffc}.errors input,.errors select,.errors textarea{border:1px solid red}div.system-message{background:#ffc;margin:10px;padding:6px 8px}div.system-message p.system-message-title{padding:4px 5px 4px 25px;margin:0;color:red;background:#ffc url("data:image/gif;charset=utf-8;base64,R0lGODlhEAAQANUfAP9UVP9aWv9OTv/5+f/e3v+urv/MzP/t7f97e/8kJP9RUf8VFf/h4f91df85Of8JCf+fn//Gxv/b2/9gYP88PP8YGP+lpf8nJ//AwP/Pz//Jyf94eP8wMPv7+/8zM/////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAB8ALAAAAAAQABAAAAZcwI9wSCwaMY3ABJExChkOkHQqOBQJlakWdLEOPdstYFgIhw3CgHmLEHKknbg8LlUIwaD5XDr+KNZaG0IWgFMRQgMJhRREBg9rCwRFGopbHhJOAxACHh4ABU6hRkEAOw==") 5px .3em no-repeat}.description{padding:5px 0 0 12px}div.breadcrumbs{background:white url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfALMAAP////j4+P7+/vb29vHx8fv7++3t7efn5+Li4v39/erq6u7u7uTk5PT09Ojo6Pz8/CH5BAAAAAAALAAAAAARAB8AAARnEMlJq72W6c27PmAojmRJOmiqrqjivnDsGnRt33iOL3zv/zyCcEgsGo/GhnLJbCoH0Kh0Sq1SA9isdsvter/cgnhMLpvP5od6zW6rE/C4fA4X2O/4vH6vB/j/gIGCg4SFhoeIiYqKEQA7") 0 -10px repeat-x;padding:2px 8px 3px 8px;color:#999;border-top:1px solid white;border-bottom:1px solid #ccc;text-align:left}.addlink{padding-left:16px;background:url("data:image/gif;charset=utf-8;base64,R0lGODlhCgAKALMJAHXIcmS2YWW1YWS2YGW2YW2/aV+vW3vPd0WUQf///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAKAAoAAAQkMElEkbwJnWNx3l1WgZW2HUBBGNSZCgZbFkF5IQPrZXF4V5cIADs=") 0 .2em no-repeat}.changelink{padding-left:16px;background:url("data:image/gif;charset=utf-8;base64,R0lGODlhCgAKALMNAP3ca/3cavz1qP3pifzpifzoifz0p0MbG/31p/Ke3eR9y8Kkef///////wAAAAAAACH5BAEAAA0ALAAAAAAKAAoAAAQksMnZFKUq2buS3tKCKCS1CASwmEYRrNM5qCazvBxjX82xwJcIADs=") 0 .2em no-repeat}.deletelink{padding-left:16px;background:url("data:image/gif;charset=utf-8;base64,R0lGODlhCgAKAMQXAOVWV+5mZuBOT+peX9tGRulfXulfX9M3N+leX+BPTtc+PswrKvRycuVWVvRyc88wMNI3N/FtbMsrKvd2duVXV+BOTqIZGf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABcALAAAAAAKAAoAAAUy4HVZokia02kVpDVNjmUNQNUyUYBQdmkFBt7JFBQQhquGUQFp0RKyw0PS6o0WyNJIFAIAOw==") 0 .25em no-repeat}.yeslink{padding-left:16px;background:url("data:image/gif;charset=utf-8;base64,R0lGODlhCgAKANUCAEKtP0StQf8AAG2/a97w3qbYpd/x3mu/aajZp/b79vT69MnnyK7crXTDcqraqcfmxtLr0VG0T0ivRpbRlF24Wr7jveHy4Pv9+53UnPn8+cjnx4LIgNfu1v///37HfKfZpq/crmG6XgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAIALAAAAAAKAAoAAAZIQIGAUDgMEASh4BEANAGAxRAaaHoYAAPCCZUoOIDPAdCAQhIRgJGiAG0uE+igAMB0MhYoAFmtJEJcBgILVU8BGkpEAwMOggJBADs=") 0 .25em no-repeat}.nolink{padding-left:16px;background:url("data:image/gif;charset=utf-8;base64,R0lGODlhCgAKAMQCAN4hIf/+/v///+EzM+AuLvGkpORISPW+vudgYOhiYvKpqeZYWPbAwOdaWup1dfOurvW7u++Rkepycu6PjwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAIALAAAAAAKAAoAAAUtoCAcyEA0jyhEQOs6AuPOQJHQrjEAQe+3O98PcMMBDAdjTTDBSVSQEmGhEIUAADs=") 0 .25em no-repeat}.locklink{padding-left:16px;background:url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAOCAYAAAAbvf3sAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gQLBAgC57+1xgAAAIx0RVh0Q29tbWVudABNZW51LXNpemVkIGljb24KPT09PT09PT09PQoKKGMpIDIwMDMgSmFrdWIgJ2ppbW1hYycgU3RlaW5lciwgCmh0dHA6Ly9qaW1tYWMubXVzaWNoYWxsLmN6CgpjcmVhdGVkIHdpdGggdGhlIEdJTVAsCmh0dHA6Ly93d3cuZ2ltcC5vcmdnisdHAAABtUlEQVQoz42SPWtTYRTHf/clJiHUFyINKddY6KLGZLFDQPwIWfwEWZ2EDAoZdLm4C34FHbIF6hYzRHA3GEWudmggRltKmsp9fXIeh16T2skDZzjw/53zP4dj8G88Ah4ChbROgA7wAdDnhVcrlcqrTqeTjEYj7Xme9jxP9/t9abfbJ7lc7gVgrdTFYvGZ67pqMBgEjUZj4ThO5DhO1Gw2Va/X067r+sDjFVCr1Q6Hw+Eyn8/vX7BIvV5X3W5XgHcAJoCIXBMRHQSBXARms5mUNjcNYOcv0JpNJ8r78snavuHsFApZbVumti1TZ2xLl4uFzI/JPlvFwk2gZQD69csn3L93B53ulcTBaoJSMcHRAXt7b3n+ZowN8GC3ij8/ZPHrGwezOUkSp3IDFYWUN4Rq6ayZDWAYBstowfQ44Hb1LnEUpnqNCn1OJmNElmtAREhCn9LlDOPRR+I4WluKfLY2BNM8NwFRiCimC7hV3yWJzywZBkgccvT1PYZprwGNyaVcnu2y8N0bo1IAA5bRb65nc2TTg9sA8+ln/OOfhMEpVwBlJgBYloU2QZTB/DRc2Wylj/U/+fQPTYDNou0q7gEAAAAASUVORK5CYII=") 0 .25em no-repeat}.unlocklink{padding-left:16px;background:url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAYAAAAmL5yKAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gQLBAcuUv/F6gAAAIx0RVh0Q29tbWVudABNZW51LXNpemVkIGljb24KPT09PT09PT09PQoKKGMpIDIwMDMgSmFrdWIgJ2ppbW1hYycgU3RlaW5lciwgCmh0dHA6Ly9qaW1tYWMubXVzaWNoYWxsLmN6CgpjcmVhdGVkIHdpdGggdGhlIEdJTVAsCmh0dHA6Ly93d3cuZ2ltcC5vcmdnisdHAAABpElEQVQoz52Sv2tTYRSGn3tvahJiqiXS0GJCQZFqmiyWLMX/RUcnIYNCBl0u7kLBwVmHbIE6miH+BQ1EkKhDhRBtKUkq9+eXcxy8tUtiii+c5bych/c734ELPQbGwATYAywuqevlcnm/2WzGvV5PB4OBNhqNSSaTeQk4S6cLhcJz13VNp9Px6/W6lkolbbfb6rquBzxZCqhWq8fdbneWzWa/nfdqtZpptVoCfFg2b4vImoio7/ty3hyNRlJcX7eAW/yHHhbWVoM3r/d1q3RTc7m0phxbU46tKylH81ezun3ntm4Wcgo8mrdpffvqKXv376HJDuPI/2saE+GfHHFw8J4X7/qk5kV4sFvBGx8z/fmFo9GYOI4Sx8KEARt5oVL8A58LsCyLWThleOpzt7JDFAaJoZjAY/K9j8hsMUBEiAOP4uoK/d4hURRePCH02MwLtv2PBIhBxDCcwnZtlziKkmQgUcDJ549YdmoxQLG5ksmytSF8HfQxCQALZuEvbqQzpJNPnwsYDz/hnf4g8M+4Bhg7BsBxHNQGMRbjs2DxHQB6yXr2G9xDwWfmf95kAAAAAElFTkSuQmCC") 0 .25em no-repeat}.object-tools{display:inline-block;border:1px solid black;margin-bottom:4px}.object-tools ul{margin:0;padding:2px 4px 0 4px}.object-tools li{display:inline-block;vertical-align:bottom;margin-bottom:2px}.object-tools a{display:block;width:100px;height:30px;padding:4px 4px 4px 20px;background-position:4px 4px;vertical-align:bottom;color:#333;background-color:#bbb}.object-tools a.active{background-color:#C7C7A0}.object-tools a:hover{color:#fff;background-color:#333}#content-related .object-tools li{width:100%}#content-related .object-tools a{width:auto;color:#333;background-color:#eee}#content-related .object-tools a.active{background-color:#aaa}#content-related .object-tools a:hover{width:auto;color:#fff;background-color:#333}#container{position:relative;width:100%;min-width:760px;padding:0}#content{margin:10px 15px}#header{width:100%}#content-main{float:left;width:100%}#content-related{float:right;width:16em;position:relative;margin-right:-17em}#footer{clear:both;padding:10px}.colMS{margin-right:18em!important}.colSM{margin-left:18em!important}.colSM #content-related{float:left;margin-right:0;margin-left:-17em}.colSM #content-main{float:right}.popup .colM{width:95%}.subcol{float:left;width:46%;margin-right:15px}.dashboard #content{width:500px}#header{background:#417690;color:#ffc;overflow:hidden}#header a:link,#header a:visited{color:white}#header a:hover{text-decoration:underline}#branding h1{padding:0 10px;font-size:18px;margin:8px 0;font-weight:normal;color:#f4f379}#branding h2{padding:0 10px;font-size:14px;margin:-8px 0 8px 0;font-weight:normal;color:#ffc}#user-tools{position:absolute;top:0;right:0;padding:1.2em 10px;font-size:11px;text-align:right}#content-related input[type="text"]{width:9em}#content-related input[type="submit"]{width:2em;padding:0}#content-related .module h2{background:#C7C7A0;color:#666}.graph_key_red{background-color:red}.graph_key_blue{background-color:blue}.graph_key_green{background-color:green}.graph_key_yellow{background-color:yellow}.graph_key_orange{background-color:orange}.graph_key_cyan{background-color:cyan}.graph_key_magenta{background-color:magenta}.graph_key_purple{background-color:purple}.graph_key_grey{background-color:grey}.graph_key_pink{background-color:pink}.hidden{display:none!important}#menu.ui-menu{width:100px}.ui-menu{width:200px}.ui-menu .ui-menu-item.selected a{color:#f00}.toolbar form{display:inline-block}.toolbar ul{display:inline-block}.toolbar .object-tools{float:right}.pagination{font-size:11px;line-height:22px;margin:0;border-top:1px solid #666;padding:10px 0 10px 0}.pagination li{display:inline;padding:2px 6px;margin:2px}.pagination li.link{border:solid 1px #ccc;background:white;text-decoration:none}#dialog-modal{display:none}form{margin:0;padding:0}fieldset{margin:0;padding:0;border:1px solid #CCC}.form-row{overflow:hidden;padding:8px 12px;font-size:11px;border-bottom:1px solid #eee}.form-row img,.form-row input{vertical-align:middle}form .form-row p{padding-left:0;font-size:11px}form h4{margin:0!important;padding:0!important;border:none!important}label{font-weight:normal!important;color:#666;font-size:12px}.required label,label.required{font-weight:bold!important;color:#333!important}form ul.radiolist li{list-style-type:none}form ul.radiolist label{float:none;display:inline}form ul.inline{margin-left:0;padding:0}form ul.inline li{float:left;padding-right:7px}.aligned label{display:inline-block;padding:3px 10px 0 0;width:8em}.aligned .ajaxselect+label{padding:3px 10px 0 50px}.aligned input+label{padding:3px 10px 0 50px}.aligned .ajax-select+label{padding:3px 10px 0 50px}.aligned ul label{display:inline;float:none;width:auto}.colMS .aligned .vLargeTextField,.colMS .aligned .vXMLLargeTextField{width:350px}form .aligned table p{margin-left:0;padding-left:0}.aligned .vCheckboxLabel{float:none!important;display:inline;padding-left:4px}.colM .aligned .vLargeTextField,.colM .aligned .vXMLLargeTextField{width:610px}.checkbox-row p.help{margin-left:0;padding-left:0!important}fieldset .field-box{float:left;margin-right:20px}.wide label{width:15em!important}form .wide p{margin-left:15em}form .wide p.help{padding-left:38px}.colM fieldset.wide .vLargeTextField,.colM fieldset.wide .vXMLLargeTextField{width:450px}fieldset.collapsed *{display:none}fieldset.collapsed h2,fieldset.collapsed{display:block!important}fieldset.collapsed h2{background-image:url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfAMQAAPf39+3t7efn5+rq6v39/fr6+vDw8PPz8/Pz8uTk5PHx8eHh4e7u7vv7+/j4+Ojo6PX19eLi4vz8/Ozs7Pn5+fb29ubm5v7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAARAB8AAAWOICaOZGmeaKqubOu6VyzPdG3XRK7vfC79wKDw1ygaj8hiYclsOpeUqHRKjTqu2Kz2Cuh6v+BuZUwum8eQtHrNTh/e8Lj8gFDY7/i83cDv+/98DIKDhIWCAYiJiouIE46PkJGOA5SVlpeUD5qbnJ2aAqChoqOgFqanqKmmCaytrq+sEbKztLWyC7i5uru4IQA7");background-position:bottom left;color:#999}fieldset.collapsed .collapse-toggle{background:transparent;display:inline!important}fieldset.monospace textarea{font-family:"Bitstream Vera Sans Mono",Monaco,"Courier New",Courier,monospace}.submit-row{padding:5px 7px;text-align:right;background:white url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfAMQAAPf39+3t7efn5+rq6v39/fr6+vDw8PPz8/Pz8uTk5PHx8eHh4e7u7vv7+/j4+Ojo6PX19eLi4vz8/Ozs7Pn5+fb29ubm5v7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAARAB8AAAWOICaOZGmeaKqubOu6VyzPdG3XRK7vfC79wKDw1ygaj8hiYclsOpeUqHRKjTqu2Kz2Cuh6v+BuZUwum8eQtHrNTh/e8Lj8gFDY7/i83cDv+/98DIKDhIWCAYiJiouIE46PkJGOA5SVlpeUD5qbnJ2aAqChoqOgFqanqKmmCaytrq+sEbKztLWyC7i5uru4IQA7") 0 100% repeat-x;border:1px solid #ccc;margin:5px 0;overflow:hidden}body.popup .submit-row{overflow:auto}.submit-row input{margin:0 0 0 5px}.submit-row p{margin:.3em}.submit-row p.deletelink-box{float:left}.submit-row .deletelink{background:url("data:image/gif;charset=utf-8;base64,R0lGODlhCgAKAMQXAOVWV+5mZuBOT+peX9tGRulfXulfX9M3N+leX+BPTtc+PswrKvRycuVWVvRyc88wMNI3N/FtbMsrKvd2duVXV+BOTqIZGf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAABcALAAAAAAKAAoAAAUy4HVZokia02kVpDVNjmUNQNUyUYBQdmkFBt7JFBQQhquGUQFp0RKyw0PS6o0WyNJIFAIAOw==") 0 50% no-repeat;padding-left:14px}.vSelectMultipleField{vertical-align:top!important}.vCheckboxField{border:none}.vDateField,.vTimeField{margin-right:2px}.vURLField{width:30em}.vLargeTextField,.vXMLLargeTextField{width:48em}.flatpages-flatpage #id_content{height:40.2em}.module table .vPositiveSmallIntegerField{width:2.2em}.vTextField{width:20em}.vIntegerField{width:5em}.vForeignKeyRawIdAdminField{width:5em}.inline-group{padding:0;border:1px solid #ccc;margin:10px 0}.inline-group .aligned label{width:8em}.inline-related{position:relative}.inline-related h3{margin:0;color:#666;padding:3px 5px;font-size:11px;background:#e1e1e1 url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfAMQAAPf39+3t7efn5+rq6v39/fr6+vDw8PPz8/Pz8uTk5PHx8eHh4e7u7vv7+/j4+Ojo6PX19eLi4vz8/Ozs7Pn5+fb29ubm5v7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAARAB8AAAWOICaOZGmeaKqubOu6VyzPdG3XRK7vfC79wKDw1ygaj8hiYclsOpeUqHRKjTqu2Kz2Cuh6v+BuZUwum8eQtHrNTh/e8Lj8gFDY7/i83cDv+/98DIKDhIWCAYiJiouIE46PkJGOA5SVlpeUD5qbnJ2aAqChoqOgFqanqKmmCaytrq+sEbKztLWyC7i5uru4IQA7") top left repeat-x;border-bottom:1px solid #ddd}.inline-related h3 span.delete{float:right}.inline-related h3 span.delete label{margin-left:2px;font-size:11px}.inline-related fieldset{margin:0;background:#fff;border:none}.inline-related fieldset.module h3{margin:0;padding:2px 5px 3px 5px;font-size:11px;text-align:left;font-weight:bold;background:#bcd;color:#fff}.inline-group .tabular fieldset.module{border:none;border-bottom:1px solid #ddd}.inline-related.tabular fieldset.module table{width:100%}.last-related fieldset{border:none}.inline-group .tabular tr.has_original td{padding-top:2em}.inline-group .tabular tr td.original{padding:2px 0 0 0;width:0;_position:relative}.inline-group .tabular th.original{width:0;padding:0}.inline-group .tabular td.original p{position:absolute;left:0;height:1.1em;padding:2px 7px;overflow:hidden;font-size:9px;font-weight:bold;color:#666;_width:700px}.inline-group ul.tools{padding:0;margin:0;list-style:none}.inline-group ul.tools li{display:inline;padding:0 5px}.inline-group div.add-row,.inline-group .tabular tr.add-row td{color:#666;padding:3px 5px;border-bottom:1px solid #ddd;background:#e1e1e1 url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfAMQAAPf39+3t7efn5+rq6v39/fr6+vDw8PPz8/Pz8uTk5PHx8eHh4e7u7vv7+/j4+Ojo6PX19eLi4vz8/Ozs7Pn5+fb29ubm5v7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAARAB8AAAWOICaOZGmeaKqubOu6VyzPdG3XRK7vfC79wKDw1ygaj8hiYclsOpeUqHRKjTqu2Kz2Cuh6v+BuZUwum8eQtHrNTh/e8Lj8gFDY7/i83cDv+/98DIKDhIWCAYiJiouIE46PkJGOA5SVlpeUD5qbnJ2aAqChoqOgFqanqKmmCaytrq+sEbKztLWyC7i5uru4IQA7") top left repeat-x}.inline-group .tabular tr.add-row td{padding:4px 5px 3px;border-bottom:none}.inline-group ul.tools a.add,.inline-group div.add-row a,.inline-group .tabular tr.add-row td a{background:url("data:image/gif;charset=utf-8;base64,R0lGODlhCgAKALMJAHXIcmS2YWW1YWS2YGW2YW2/aV+vW3vPd0WUQf///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAKAAoAAAQkMElEkbwJnWNx3l1WgZW2HUBBGNSZCgZbFkF5IQPrZXF4V5cIADs=") 0 50% no-repeat;padding-left:14px;font-size:11px;outline:0}.empty-form{display:none}/*!jQuery UI - v1.10.4 - 2014-04-02 * http://jqueryui.com * Includes:jquery.ui.core.css,jquery.ui.accordion.css,jquery.ui.autocomplete.css,jquery.ui.button.css,jquery.ui.datepicker.css,jquery.ui.dialog.css,jquery.ui.menu.css,jquery.ui.progressbar.css,jquery.ui.resizable.css,jquery.ui.selectable.css,jquery.ui.slider.css,jquery.ui.spinner.css,jquery.ui.tabs.css,jquery.ui.tooltip.css,jquery.ui.theme.css * Copyright 2014 jQuery Foundation and other contributors;Licensed MIT */ .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;min-height:0}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;width:100%;list-style-image:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;min-height:0;font-weight:normal}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;charset=utf-8;base64,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");height:100%;filter:alpha(opacity=25);opacity:.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #aaa;background:#fff url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAeUlEQVRoge3OMQHAIBAAsVL/nh8JDDfAkCjImpn5HvbfDpwIVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVhtqiwTEKTLXTgAAAABJRU5ErkJggg==") 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAYAAABHLFpgAAAALElEQVQYlWN49OjRfyYGBgaGIUT8//8fSqBx0Yh///4RL8vAwAAVQ2MNOwIAl6g6KkOJwk8AAAAASUVORK5CYII=") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAANUlEQVQ4je3LMQoAIBADwb38/6t5wFXaWAiCtUiaYZvF9hBACOFbuntVVe11B0CSjjeE8BwThQIJ8dhEl0YAAAAASUVORK5CYII=") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAANklEQVQ4jWN48uTJfyYGBgaGUWKUGCWGLfHt2zcoi5GREYNgYmJCZiG42IiB98woMUqMEtgIAMdjCdyg+eEBAAAAAElFTkSuQmCC") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAMElEQVQ4je3LIQ4AIBTD0O3f/8wrFgmKhMy8pKJKwkhSKeVbbGuAPU9f4PIopTxgAeS0DRtI4yK0AAAAAElFTkSuQmCC") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAP0lEQVQ4je3PMQrAMABC0a/3v2zX0mCXNkOgc6C4PARd5DqPGKCU8luS8SbAQhiCQRgJE56kZTfbbP9RSvnkBsWcEAZRWcgqAAAAAElFTkSuQmCC") 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAPklEQVQ4je3PMQqAMABD0Z/c/7aCIAXjJIhD10LJ8vgZw30eMUApZV/GhZNgSTjoLYElY/hNMJ/S6gullCkPiCIPCr4NiEwAAAAASUVORK5CYII=") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("data:image/png;charset=utf-8;base64,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")}.ui-widget-header .ui-icon{background-image:url("data:image/png;charset=utf-8;base64,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")}.ui-state-default .ui-icon{background-image:url("data:image/png;charset=utf-8;base64,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")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("data:image/png;charset=utf-8;base64,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")}.ui-state-active .ui-icon{background-image:url("data:image/png;charset=utf-8;base64,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")}.ui-state-highlight .ui-icon{background-image:url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAAA7VBMVEUug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8ug/8lgcyYAAAATnRSTlMAGBAyBAhQv4OZLiJUcEBmYBoSzQwgPBZCSEoeWiYwUiyFNIeBw2rJz8c4RBy9uXyrtaWNqa2zKP2fJO8KBgKPo2KVoa9s351GPm5+kWho0kj9AAAPhUlEQVR4nO1djWLbthEGyUiq5YSSLXtp7FpLOmfzkmxr126tmi2p03RJ1/Xe/3EGgARxPyAgRbIk2/hkSz4CJO4+HsE7AJSVysjI2AMUUOxahZ2iANhzBtZWr4BoIRSYAVN5u4QwDwQDRbcwfUi5KS3wFuDmFnQLa4Dtb//cqktwD5QEFFwfUs7PoCCA7y4bEJVFizcIob8KmhAplwwqVjt+9FBl3uINQniwEiryEyw9JHqGpQdEFNi+B4QQ7QOiHhysIPoAxUqxvdvvA9K42bsAv4S2fxfYOe57IJSRkZGRkZGxx7jxSHDHcRBXQMTyIjInBgHwBJ/bEx8PEANC+uhbpSSggCBAVODVabpI1S/k4WLZpTn6NpMhoX9Y40hxYERFpMcqUs4AloCtDQdID1YhnyXZ2hLjAYWiO9Dy1PDB7tPhIqLx+uMB8grZaR+Qxl2/C2RkZGRkZGRk7A7rBf7J0DR5/LUTjzUPIPSPGvQJiVJiB7kcQCiUOJrcFNtDZIf2xarQ3aGvLNxAVIFAabz90BFiBIlycTBhgWwOWCH0FLYHlPqwHaCvcIn2ZbosCevfPTRiFFcgvHukCjWwrc3GrGh1fsAof8EaUReKXkCB4/MzFNo97qLpFiKFYv/kNR5YQxQbQEofkZ2OuEOHqqT6gFTpru8CN7x/+jaZkZGRkZGRcV+x/rLUNcMMqUAscgnFocmpqkTzqymwVAPxfJ5PnIUUQOUKT04tEdWZyv3JCQSn96WS4pD97QfyW25A7NhSAbyhmVj0FEltA4vdiygBibXhoUYgykCUP7HwPTDeEqAIcHVMkZg7Zx4k0uFANs63hPQXCoRLAwdgGsr9Az7Qv7sgQGgg1aPl/BJLExBWgG4RFRLFImGmIquPC/klEGyCG0AuAXaJJC+B8FVe9NYQDEcXB8g6AQcjYJ1goJIggHWCrFR0S6kRHN5+4BzFi8NaoN35NRxUvL+JJdZr7PV4wK6fj8nIyMjIyNhr3OxdXAYq7FHZwB6bDSzSh4sF0utChqo0NAvaT1hLzXwFinmCzmeDucEQK18TTaQoFgP7bNC+RZ4OT4T6gQogDFYk+1QxQlj19QGSAWKiLYp8P0Ag1Gbz1ULfWHLg9iUnQNK5QQJcukm04blKLH2GgEJCY+HzXAZWCvHKco3Bp6MIaCjSXXRJyOxeqhnzEaF93MfFGW/O16ZvDL5TM4MJIjujz/cHypkQuuzRwWJ93BKdIt+wCRAPl9kpe2Ikkb2mFgGlxh/i40d3EHfdvoyMjIyMu43ylt/IAmGHnN5iIt7wKfbv01RAcJqFRl9lcjYQSnbQqKgC4fYOwSJt6N6trE0twZ9kN/PqNpTQeICvr4TLsDYC06U7BMjshS+v1/aT7IwQYD5LcgRQXMT2FrBfBLjZ6151jDElk9tPFfpUgk2yregusX25BJbwAFEfM+YI6vGAti4bTtizB+TjfQCrERyhKb2X8D6A9wX75P4t4neBYJeP6pdhg/gQl8MWvytzeSTjgOQBynQdh/iXKdxOrGJ/RkZGRsb9QmXihGr5+g8GGg9uTh+KoVZuNIzV+CwRucFBEyr1mVjx4irOxwM1BhirB6Q+2eNQi4eqR+aF6mELtoMzCR7V9RAFe/ZvQogNiyY8FPSUTFsLp8TeTmMui5mtw7bcaT0Yw2AA4wFRQIlkgq+1DQrNhkmoxS5Jq+u6bMAIGRECEANgXHTgWzwgBOhDH2l0oTQ4D8D5NMktBgNywAEMjo8rwATMZrPY7JGxBoJCkIBDQiAY09EGTUiBCWkUpISfGPR5AAwBfZiG2z7Ayc1yeKTxid39xBNwfHr4O0LA48ePFTvhYrF1r4tyAoz9n2MCqEuBtp/6GDR0oAYfG/R6wJExHYZHfhygsv7fEWCOj4bYmsP5A+pL4MkTfAnMlD4F+r3bobKvTyTA2P/w7PN+Agq2QW8piqMCpTBwenoKvX0AHGkGtP2YAPvTEWA7QUTAudn7/NxtOG46wWNmDtpBEkBzN7rBEvAFHp+YTB/q97qPAN4gHFqgBi8uLsC7qPCA6mg41G/+ErByPwEXDdoNxRhOx+M5jPEzQugS0ht+b1/Y3gEnYMAIAOIBE29/hIDucE8tmMsNOgK4B1RHFu4UCRlMHzv0xzcajcfdXWDs2h8TArBCkoDUJYDLmz6w7ip3BFS0ve5wTRwAn6keMA9I3QYbfSZ0DKbyt+7OXjGI1idPcfNyAyfAMlCrzaGqphYrxHocLHRJVycnfGUcbtT+jIyMjIw9x7Nn8fJSzG0TmFtO8rZT+XT3S3ub+tKJbbLd5diTVp50+zahyeHSslJ/YPrU0fuazrZO2CZ92/ZCCVXlGRiZKPJyPPRxyIFWeXLQBXJBKiq/3divEAN6ZwM200Qjm7EJBZeWm/PRWVCbYK7s7u2l4XaCz+lzgOfMfhMonXr7TWzeZb98dbgIzBT8Ub8eYYUqfZ4rVJ/MDbIDgPqTulJ/xvntWAtjIisqnwxOkGz0n077FARoY79GdA6HPE4rOy196NiMWHTZlSSApcOgXpy/fHV2joaNKu3ffsAnRcBf4K/6NcIG6tIxk3HyoXPjASqfUgXbYN5PzpL2njkR9QMjeDTVHDTCgRuxOegjoO0FvKzP/t/gmVdI24+G7NIe8JX6Wv3dDyldMA+4YB5wwTygtd+dwRqaTqrLb1l73zTSN52CNpnHuQOYPsDblybgxfkXh/oVtr+N1DEBJdhRJyd/Bd/q1z+cbNrD17iVKyajcnv9arhOkRPgsruuD6DmNPwpDNrLw2CoTgHni4yALr0L29+tiKAEIPn868ejx//8rpWP3OEOl5On9OwpcQm0MhafP/ey8f1uvDNIgGLQG8z4YO99ENgg95etwv4uYJYY8fUGHYH6j6fscHFZMftlAl9i+9XL73X3N/n+ZStOzfVfRvYXhrbdKOpEgVQTg/wsDuDD3kwOfQNMTJ5y+/ltUDWLunyxnRF46IqlBzGMY4X7inggREFioIyMjIyMHWCIB6ZNKAcXseo3vLTQTkVE7348dlwJJSz0+wLfmi8BhZqfw3D4ww/wHVLnEd5/fgYvXsDZ3MlsvYUbbnDjDZ3MN3TJG4+bxjAaDl8TBri9qxEw1ccao2wTNAMLHo2f+sjrXwb/9qHoYqgPMBXJTVfOpmrZH23y6uvo0LHSyY6fHGwKfHJlAuMFvObjDYrIqxBgQi20h7Hd/nYVLmno+eaNUm/eeH2GCuopntnhBJAlI2AHo9CCh1I1QxUdAbqqGY9BBLwyc3W4wYVhvY8A4BoIc1l5M7vnPWphZW9/Ses3n37y9a0uGqFwFQZsQQbd386DogpgEk+dzynsAZMJXq8+ns9NeukJ0PYrNATGGefJQlhkLo7DTXr+y3bNiOsDvrXTz/C2q1DXZH84iRNwrP88Nj+u2DjYEE6RBxD9Knj16ujVHC67A7422o02RwD3gB+t7EblWvu9geOFxSnd3ROmT+nJyQkhoPlsxVONc/3TEdBos+jtA+ZzcwHgTvD1cDjaYCcItA8w9i88A8b+mqSjc6Pvqd998QguEQPmQMeo23ODN86+p0/bn1buBkT6+oBhNZ/PYY4ZAHYb3PRd4LkZmPX68NRtMZn4ASvdA+qf0jMA5MP9eeg28Nug9QiLnj5A33U1MAES6xHAUNpz/9zFAYE1gqQDMT3G6xI9pwdw/aIgKoHCS1YGlRnSq9yCjdXjgN3j+N27YyROHxmuNAeNKPpYuXIyIyMjYy0M8eros59MF/PT2c602T7eA7zvhJ9dr/vzDjXaLp4Yc5+0wllzxzHv3gdmMMM7/CcQzKgVBqYTmFn+Z+mKm8J7k0A5F/jgCfjQ1WBhQyiOqD0lYuqBb+AyzMw9Ha2G3m6c8qQx+AlqnIceQp+Sb6i9UyQWbhr54+AjnZ0VzW2TAN0DmBT6PWmc6jDBE2PK2u+nF43dyP7Q0t1pOcX2fdRvH0mF2Q4JqN35rnHjVIeaXfIAVyUuw/aHCCiJy9iF5l1621zweI8KZrPZ9iJdb7DXJ3US0OSrtZ10imt7wHY7QesAzUMz1oZ3noB3qFJ/H18j97FYuw8QDN4oeKf30osvcSW2ExLo+VcbuAuo/sUIm8fMG9xocO3Ea19J9gFYivnHJ2KnyfovZlgW3v6ySx32abQiIyMjIyPjhlFDTLxpwIgFMnTp6A3g4IDKNY+stkwAMAoIAbasxBXqUWneSAWTMjt50lTqT29rFjvXohjsDNm2YPXDFlICmrJOZ3t6tHm8AiEAl0sCeLIIorIRt+cFbew/QRsoAXb4o1XSfoywzm0FTMAoYBNvLyFu8v8HpLBtD1iKgC17wHb7AI6d9wFbvguAIGTHd4E9wG7jgIyMjIyM+434c2R3HeV/Ffx6jtZu6ijl8h59T655jhR+rdHzDOP6beABCheb8O8/WFXeOyzgf5oAhVYnKxP7CwaAf1afJu8bSrhS6tdaXeGnrRenOqOlz9d6QwYnA/3TLd+GE7qe3chA5YF5DfY0vK3adfOX/gyNp2BW25MHdxAB9qvRiiP3/XpQQFGYDU4+Mi///XumXG8pjvaUAOsBGlf4jJt+YYEzeEzAdw06F19R3juM7D1wita86GR0CKfDHgLuXCc4Bri6vMLdfjMc4VNSUNsdodo2xu/1+Xl/K5+az8jIyMhYG/z5gJTMF1GtKq/a3rpyCvz5gJTMl9GtKq/a3rpyCmfQ4WwZmS+kXFVetb115ST48wEf/AGcfG1iw+tWbpbS2vJ3nQxcVr3lH3z5h972FUTLzYpOVk7l5hD+eYcYwDcAnewOotrZ4OtrPDucqi/LRX0/RR4qx7Nn4U8g+qjffvuN6Gf+nC85vwauHjaYyubqvWYKY4VEfSUMitdnBCT1Ue63R5439m+OgCn6DroAAaHPVQxKth/wkJgHmG8bmQMsT0D6EjDfvhVRKO3ywOQUgRA7nmL1uawZmHf1k+DPBwQ6NdcJ+k6Md1LA5f5ONdhJ8vZ5J0vLHT99srkGOjmJbd/G1r2Nriqnse1AZt1AalU5jW2HsuuG0qvKGRkZGRkZGRG0gcONyXsP9v8D0/IdJADiBNiXl3327WRGgOL/9HC/0XwlIURkRhC4tz6Z/fu7fUf2gHvfB9z3u0BGRkZGRkbGplHcnkgguQoSqtUXuhbs/wPtMwqV0HUJAvj5vk32b8IDuL23yn7qAXZ5u32hbRX7d3o82Df1FZXvbh9QOfhyxldr/+3xgXU9oKmvsHyr7F/XA269/eveBXrsv7N9QALe/tvjA0kPWAXGbvebkbHn+D/J5nMcHzx1UAAAAABJRU5ErkJggg==")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("data:image/png;charset=utf-8;base64,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")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAe0lEQVRoge3OMQHAIBAAMcC/kjdZJHTI0A4XBdkz86wfO18H3hRUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUF8O8A8WdY6opAAAAAElFTkSuQmCC") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAe0lEQVRoge3OMQHAIBAAMcC/kjdZJHTI0A4XBdkz86wfO18H3hRUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUF8O8A8WdY6opAAAAAElFTkSuQmCC") 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);border-radius:8px}body.login{background:#eee}.login #container{background:white;border:1px solid #ccc;width:28em;min-width:300px;margin-left:auto;margin-right:auto;margin-top:100px}.login #content-main{width:100%}.login form{margin-top:1em}.login .form-row{padding:4px 0;float:left;width:100%}.login .form-row label{float:left;width:7em;padding-right:.5em;line-height:2em;text-align:right;font-size:1em;color:#333}.login .form-row #id_username,.login .form-row #id_password{width:13em}.login span.help{font-size:10px;display:block}.login .submit-row{clear:both;padding:1em 0 0 11em;text-align:start;border:None;background:None;margin:0}.login .password-reset-link{text-align:center}.selector{width:580px;float:left}.selector select{width:270px;height:17.2em}.selector-available,.selector-chosen{float:left;width:270px;text-align:center;margin-bottom:5px}.selector-chosen select{border-top:none}.selector-available h2,.selector-chosen h2{border:1px solid #ccc}.selector .selector-available h2{background:white url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfAMQAAPf39+3t7efn5+rq6v39/fr6+vDw8PPz8/Pz8uTk5PHx8eHh4e7u7vv7+/j4+Ojo6PX19eLi4vz8/Ozs7Pn5+fb29ubm5v7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAARAB8AAAWOICaOZGmeaKqubOu6VyzPdG3XRK7vfC79wKDw1ygaj8hiYclsOpeUqHRKjTqu2Kz2Cuh6v+BuZUwum8eQtHrNTh/e8Lj8gFDY7/i83cDv+/98DIKDhIWCAYiJiouIE46PkJGOA5SVlpeUD5qbnJ2aAqChoqOgFqanqKmmCaytrq+sEbKztLWyC7i5uru4IQA7") bottom left repeat-x;color:#666}.selector .selector-filter{background:white;border:1px solid #ccc;border-width:0 1px;padding:3px;color:#999;font-size:10px;margin:0;text-align:left}.selector .selector-filter label,.inline-group .aligned .selector .selector-filter label{width:16px;padding:2px}.selector .selector-available input{width:230px}.selector ul.selector-chooser{float:left;width:22px;height:50px;background:url("data:image/gif;charset=utf-8;base64,R0lGODlhFgAvALMAAP7+/u/v7/Hx8f39/ff39/Pz8/j4+PLy8vDw8Pn5+f///+7u7gAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAWAC8AAAR0UMkJTBFriWLA/BQRZCQZEB6oDEfpkscADshrL4g8tbd9TIRej6AAjIS2ACCB7FmatwvUhjhOr9isdsvter/gsHhMLpvP6LR6bbZmA5jthltgbjvuqVIRzBIlcVMCKSs1UDkzPEIxKkUiNyeEjRVSGhySEhEAOw==") top center no-repeat;margin:10em 5px 0 5px;padding:0}.selector-chooser li{margin:0;padding:3px;list-style-type:none}.selector select{margin-bottom:10px;margin-top:0}.selector-add,.selector-remove{width:16px;height:16px;display:block;text-indent:-3000px;overflow:hidden}.selector-add{background:url("data:image/gif;charset=utf-8;base64,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") 0 -161px no-repeat;cursor:default;margin-bottom:2px}.active.selector-add{background:url("data:image/gif;charset=utf-8;base64,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") 0 -187px no-repeat;cursor:pointer}.selector-remove{background:url("data:image/gif;charset=utf-8;base64,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") 0 -109px no-repeat;cursor:default}.active.selector-remove{background:url("data:image/gif;charset=utf-8;base64,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") 0 -135px no-repeat;cursor:pointer}a.selector-chooseall,a.selector-clearall{display:inline-block;text-align:left;margin-left:auto;margin-right:auto;font-weight:bold;color:#666}a.selector-chooseall{padding:3px 18px 3px 0}a.selector-clearall{padding:3px 0 3px 18px}a.active.selector-chooseall:hover,a.active.selector-clearall:hover{color:#036}a.selector-chooseall{background:url("data:image/gif;charset=utf-8;base64,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") right -263px no-repeat;cursor:default}a.active.selector-chooseall{background:url("data:image/gif;charset=utf-8;base64,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") right -289px no-repeat;cursor:pointer}a.selector-clearall{background:url("data:image/gif;charset=utf-8;base64,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") left -211px no-repeat;cursor:default}a.active.selector-clearall{background:url("data:image/gif;charset=utf-8;base64,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") left -237px no-repeat;cursor:pointer}.stacked{float:left;width:500px}.stacked select{width:480px;height:10.1em}.stacked .selector-available,.stacked .selector-chosen{width:480px}.stacked .selector-available{margin-bottom:0}.stacked .selector-available input{width:442px}.stacked ul.selector-chooser{height:22px;width:50px;margin:0 0 3px 40%;background:url("data:image/gif;charset=utf-8;base64,R0lGODlhMAAXALMAAO7u7v////j4+PX19f7+/vPz8/r6+vf39/Dw8P39/fv7+/Ly8vT09PHx8fb29gAAACH5BAAAAAAALAAAAAAwABcAAASBMMgpiRE46827IVQYKgVgnmiqrmihiBTBsHRNM6CYIHbvm4hEiND4GW2NnKR0bLIKE4NzujIsqdgTlJDtAizerOEQxh7I5ek5rZaym593E7SQ/xYSt91mve5pUBMEPH8qCEoSO4UoQTAETIUFiCIkey4wjhcOA5ydnp+gnQ4CH5gRADs=") top center no-repeat}.stacked .selector-chooser li{float:left;padding:3px 3px 3px 5px}.stacked .selector-chooseall,.stacked .selector-clearall{display:none}.stacked .selector-add{background:url("data:image/gif;charset=utf-8;base64,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") 0 -57px no-repeat;cursor:default}.stacked .active.selector-add{background:url("data:image/gif;charset=utf-8;base64,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") 0 -83px no-repeat;cursor:pointer}.stacked .selector-remove{background:url("data:image/gif;charset=utf-8;base64,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") 0 -5px no-repeat;cursor:default}.stacked .active.selector-remove{background:url("data:image/gif;charset=utf-8;base64,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") 0 -31px no-repeat;cursor:pointer}p.datetime{line-height:20px;margin:0;padding:0;color:#666;font-size:11px;font-weight:bold}.datetime span{font-size:11px;color:#ccc;font-weight:normal;white-space:nowrap}table p.datetime{font-size:10px;margin-left:0;padding-left:0}p.file-upload{line-height:20px;margin:0;padding:0;color:#666;font-size:11px;font-weight:bold}.file-upload a{font-weight:normal}.file-upload .deletelink{margin-left:5px}span.clearable-file-input label{color:#333;font-size:11px;display:inline;float:none}.calendarbox,.clockbox{margin:5px auto;font-size:11px;width:16em;text-align:center;background:white;position:relative}.clockbox{width:auto}.calendar{margin:0;padding:0}.calendar table{margin:0;padding:0;border-collapse:collapse;background:white;width:100%}.calendar caption,.calendarbox h2{margin:0;font-size:11px;text-align:center;border-top:none}.calendar th{font-size:10px;color:#666;padding:2px 3px;text-align:center;background:#e1e1e1 url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfAMQAAPf39+3t7efn5+rq6v39/fr6+vDw8PPz8/Pz8uTk5PHx8eHh4e7u7vv7+/j4+Ojo6PX19eLi4vz8/Ozs7Pn5+fb29ubm5v7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAARAB8AAAWOICaOZGmeaKqubOu6VyzPdG3XRK7vfC79wKDw1ygaj8hiYclsOpeUqHRKjTqu2Kz2Cuh6v+BuZUwum8eQtHrNTh/e8Lj8gFDY7/i83cDv+/98DIKDhIWCAYiJiouIE46PkJGOA5SVlpeUD5qbnJ2aAqChoqOgFqanqKmmCaytrq+sEbKztLWyC7i5uru4IQA7") 0 50% repeat-x;border-bottom:1px solid #ddd}.calendar td{font-size:11px;text-align:center;padding:0;border-top:1px solid #eee;border-bottom:none}.calendar td.selected a{background:#C9DBED}.calendar td.nonday{background:#efefef}.calendar td.today a{background:#ffc}.calendar td a,.timelist a{display:block;font-weight:bold;padding:4px;text-decoration:none;color:#444}.calendar td a:hover,.timelist a:hover{background:#5b80b2;color:white}.calendar td a:active,.timelist a:active{background:#036;color:white}.calendarnav{font-size:10px;text-align:center;color:#ccc;margin:0;padding:1px 3px}.calendarnav a:link,#calendarnav a:visited,#calendarnav a:hover{color:#999}.calendar-shortcuts{background:white;font-size:10px;line-height:11px;border-top:1px solid #eee;padding:3px 0 4px;color:#ccc}.calendarbox .calendarnav-previous,.calendarbox .calendarnav-next{display:block;position:absolute;font-weight:bold;font-size:12px;background:#C9DBED url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfAOYAALzS6bDJ44+w0YGlyrvR6LTM5Yiqzn6iyIOny4CkyaG+242u0KK+27jP53ugxoiqzYaozJy62Jq413ugx4qsz5+82aTA3K7H4oSny5+82rbN5rnQ6KTA3afC3rLL5JS01KnE37bO5n+kyZy52HyhyK7I4bLK5LjP5rnQ55W01KnD35e21X6jyK7H4ZKy06vG4XyiyIyt0JSz1LHJ44uszpe11nyhx7rQ55e21pGx06fB3oqszn2ix5Kx0pe11aS/3IKlyqzG4KbC3pq31rvR6azF4LXM5Yyu0KvF4bPK45m41qfC3bvS6H2hx6zG4YKmyrPK5KzF4ZWz1Iyuz5q41oapzYCjyZKy0qrE37fN5qrD4J+72pCw0ZGy0oGmyo+v0bTN5bXN5Zm415262Jy62YWozIWpzKrD34aozbrR6I+v0rjO5rjO56fB3anE4ISmy7PL5LfO5p+72bbN5YapzHuhxrfP5nygx7fP56K924+w0rHJ4qXA3Yurz36jyYuszyH5BAAAAAAALAAAAAARAB8AAAf/gACCg4SFggQETERMiIhEBGmPjAQbGzc3KCiWmZY3lRsoaw2jdicnDaeoqHhsDRohr7AhWVlxcxq4IbBgRgW+Yb1hBUZgvsYmHlAeScjIHs8mJnBQcAEBM9bY1nvW2dgXLS0lLRcl5ePm4BcXRUEvTkhR7e8vQVFIL0VIKm5YICAqAArUgiWgljNCdCzp0KZDh4U6OugQIkTiEg4cfnCwYCGjBT4cNXLkoIABg5IoTSpYeTIPgwoZMmypAFNmBpoV5MSsMGbEiAgRfgIdQ8YnGaARJChVMoQKFaZKxYiRoETCkBorVtTwsQIHDh8+cGD9qjXFBxkyUpiVcvbD2hQyqT646JEjx5Uec7u4sJsjrwsBArgADvxFQGE1AvQMjhFjgWPHMY4cedx4yhEKmGnQ2EFBM4UdfSj8+bzjgQHTBlI/WK2atYEyaCCYgUDbDB0IVcxUKUMbAgIMCIL/fhMcOIbjv58AGeBlOfMnA6I7j55AhIjq1a9bSZBgO3YeLFgcGH9APPny4f3AsMGeRBMSJHjAaGJDfhMeJO44mLDfQR3+EwTYnwMOBAIAOw==") bottom left repeat-x;padding:1px 4px 2px 4px;color:white}.calendarnav-previous:hover,.calendarnav-next:hover{background:#036}.calendarnav-previous{top:0;left:0}.calendarnav-next{top:0;right:0}.calendar-cancel{margin:0!important;padding:0!important;font-size:10px;background:#e1e1e1 url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfAMQAAPf39+3t7efn5+rq6v39/fr6+vDw8PPz8/Pz8uTk5PHx8eHh4e7u7vv7+/j4+Ojo6PX19eLi4vz8/Ozs7Pn5+fb29ubm5v7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAARAB8AAAWOICaOZGmeaKqubOu6VyzPdG3XRK7vfC79wKDw1ygaj8hiYclsOpeUqHRKjTqu2Kz2Cuh6v+BuZUwum8eQtHrNTh/e8Lj8gFDY7/i83cDv+/98DIKDhIWCAYiJiouIE46PkJGOA5SVlpeUD5qbnJ2aAqChoqOgFqanqKmmCaytrq+sEbKztLWyC7i5uru4IQA7") 0 50% repeat-x;border-top:1px solid #ddd}.calendar-cancel:hover{background:#e1e1e1 url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfALMAAP////j4+P7+/vb29vHx8fv7++3t7efn5+Li4v39/erq6u7u7uTk5PT09Ojo6Pz8/CH5BAAAAAAALAAAAAARAB8AAARnEMlJq72W6c27PmAojmRJOmiqrqjivnDsGnRt33iOL3zv/zyCcEgsGo/GhnLJbCoH0Kh0Sq1SA9isdsvter/cgnhMLpvP5od6zW6rE/C4fA4X2O/4vH6vB/j/gIGCg4SFhoeIiYqKEQA7") 0 50% repeat-x}.calendar-cancel a{color:black;display:block}ul.timelist,.timelist li{list-style-type:none;margin:0;padding:0}.timelist a{padding:2px}ul.orderer{position:relative;padding:0!important;margin:0!important;list-style-type:none}ul.orderer li{list-style-type:none;display:block;padding:0;margin:0;border:1px solid #bbb;border-width:0 1px 1px 0;white-space:nowrap;overflow:hidden;background:#e2e2e2 url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfAKIEAMfHx+7t7dzc3P///wD/VAAAAAAAAAAAACH5BAEAAAQALAAAAAARAB8AAAM5SLrcO4FA5wQglurd5uTYlYFkF31cNpasF4Hqxbbnm4ryTLpkrJc8GO63q/WGRE7wFkoqjcKmk5IAADs=") repeat-y}ul.orderer li:hover{cursor:move;background-color:#ddd}ul.orderer li a.selector{margin-left:12px;overflow:hidden;width:83%;font-size:10px!important;padding:.6em 0}ul.orderer li a:link,ul.orderer li a:visited{color:#333}ul.orderer li .inline-deletelink{position:absolute;right:4px;margin-top:.6em}ul.orderer li.selected{background-color:#f8f8f8;border-right-color:#f8f8f8}ul.orderer li.deleted{background:#bbb url("data:image/gif;charset=utf-8;base64,R0lGODlhAwADAIABAMzMzP///yH5BAEAAAEALAAAAAADAAMAAAIERB5mBQA7")}ul.orderer li.deleted a:link,ul.orderer li.deleted a:visited{color:#888}ul.orderer li.deleted .inline-deletelink{background-image:url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAPCAYAAACFgM0XAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIBSURBVHjaxJU7TwJBEMfvUPGBD2KiqJQaNT5iY+MRCyy0gtJWG7+BPfAR7O2tpTcUBhoTYxStSDRGToioqOGhRs//kF0zLndAtHCTH7ts9j8ztzuzq1uWpf226bqu/aWR73YHw350Y6Cb/oIKuAU3VvOI58Ec6AMu8AwuwCn4rPPF7cExOVwEXgfjL+AImpLNDgyAdeB30N6BPfDAd8DFnHegW5LOk8lk3MYIfZWBtZ3KPAW+IZ1DG7HRDoFN0MsnXWw8DTzSuWEYTlvcBWaVuRUwKJ030PaDtbojEF+/SgFx5+l0utYXCgUtGAyGef6AA5Eb9PXboI07V7QxpqU82AFPteMXOUDbE4IBy6nlcjlaGGKMCoPjINqCNsqYUXPATT+BQCCcSqW+Q6UxYZqm5vP5tEQiwfNC5kGP0MaaaHleeORAluGbnKAg5DHQWM7n8/m42+3mx/cq+jLTxuQx0JhpI4q2pCZhkdeouhPUMpmMpuRAUYxN8MGDaKIlP9kfAeAs3tFd81X8623mTGgqYkz9sbIuZqOVc+eUgHUXkaiEZX4+Dq0KDqGrsouIKmFLlmKDRrfiruhrSajehFTjC2DYwcA9OIGmbHMTUo3TDk04aK/APnjkN6Fud7XD8IgIwiveAjrvAtZmW3iMpsCkKFOXyJFLcGb3GOn//Rp+CTAAlhUhlXFtcoAAAAAASUVORK5CYII=")}ul.orderer li.deleted:hover,ul.orderer li.deleted a.selector:hover{cursor:default}.inline-deletelink{float:right;text-indent:-9999px;background:transparent url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAPCAYAAACFgM0XAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKfSURBVHjaxJVNiFJRFMdVps/pYwqKmoEWNVSU0TC0UZjAWrSoCUQtXNWiloKjGzfF4EoSIZdDbVwJuhrEjbRrU4oQBQURFJKNpJVN+DHiR/+/nTdcXz4matGBn+967j3v3Hc+7jUPBgPT34rZbDb9i9D3hMGLZ/CYBrv4F7TAGvg42HrH54AV7AUWsA5eg5eg/5sv9X1wTIcXwJTBy3+AAmwaYyKwH9wAMwa2VZAEX9UIWBTn2/Cw0bnD4TigtxYdv8qOtTt009z4LTq3Wq179LaiOwRug5F5izI+DSZjsdhcLpdbSaVSl7UJjqmLx+Pz+LsTnNX5uAQO+ny+48Vi0ReNRue0CY6p8/v9s/i7D1xRDSeUrz82jFO12kRo+m632wfHw0Ucd7vddqlUWhe7adi8kdrg13NjplqtttHv9weBQOC65oDjDqRcLjdExc0/Ad838yDhWdQIhUJB2DT6IhwHg8EldQ04Ki88AZY1vF7vo1ar1dZsOfZ4PCvqGnBGXwPb1bBEIpG3hUIhYxbJ5/OrSM07Xdi1OtitKpPJZDmbzT7XbDOZzLN0Or2ms53U10BHnWXObTabh2Endrv9ploTIhvybKpK5tzpdC50RFwu10W1JkQaI4cBhDVwlaFNJBIPELkew85UKOnocU7Cf01yr3XAPYY2HA6ne73eMOxMhZYO6jgn4b8vLfvLN39kEzxAFlFwd+r1eomO1ZqgjnOim9edR9z8MiL1sFKpfKZjtSao45zoXOrHbx5E0gkLan4MpA2ewq6tHESMwl224ha27KLH8hzdgGyCPX4eHDZ4wRfwAjbNMSche5ztN2tg+wGsgm9jI6C7C47IJqbkLqizzbG2/AeX0SlwUtqURf4JvAevxl1G5v99G/4UYAB5r2mW0520bgAAAABJRU5ErkJggg==") no-repeat;width:15px;height:15px;border:0 none;outline:0}.inline-deletelink:hover{background-position:-15px 0;cursor:pointer}.editinline button.addlink{border:0 none;color:#5b80b2;font-size:100%;cursor:pointer}.editinline button.addlink:hover{color:#036;cursor:pointer}.editinline table .help{text-align:right;float:right;padding-left:2em}.editinline tfoot .addlink{white-space:nowrap}.editinline table thead th:last-child{border-left:none}.editinline tr.deleted{background:#ddd url("data:image/gif;charset=utf-8;base64,R0lGODlhAwADAIABAMzMzP///yH5BAEAAAEALAAAAAADAAMAAAIERB5mBQA7")}.editinline tr.deleted .inline-deletelink{background-image:url("data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAPCAYAAACFgM0XAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIBSURBVHjaxJU7TwJBEMfvUPGBD2KiqJQaNT5iY+MRCyy0gtJWG7+BPfAR7O2tpTcUBhoTYxStSDRGToioqOGhRs//kF0zLndAtHCTH7ts9j8ztzuzq1uWpf226bqu/aWR73YHw350Y6Cb/oIKuAU3VvOI58Ec6AMu8AwuwCn4rPPF7cExOVwEXgfjL+AImpLNDgyAdeB30N6BPfDAd8DFnHegW5LOk8lk3MYIfZWBtZ3KPAW+IZ1DG7HRDoFN0MsnXWw8DTzSuWEYTlvcBWaVuRUwKJ030PaDtbojEF+/SgFx5+l0utYXCgUtGAyGef6AA5Eb9PXboI07V7QxpqU82AFPteMXOUDbE4IBy6nlcjlaGGKMCoPjINqCNsqYUXPATT+BQCCcSqW+Q6UxYZqm5vP5tEQiwfNC5kGP0MaaaHleeORAluGbnKAg5DHQWM7n8/m42+3mx/cq+jLTxuQx0JhpI4q2pCZhkdeouhPUMpmMpuRAUYxN8MGDaKIlP9kfAeAs3tFd81X8623mTGgqYkz9sbIuZqOVc+eUgHUXkaiEZX4+Dq0KDqGrsouIKmFLlmKDRrfiruhrSajehFTjC2DYwcA9OIGmbHMTUo3TDk04aK/APnjkN6Fud7XD8IgIwiveAjrvAtZmW3iMpsCkKFOXyJFLcGb3GOn//Rp+CTAAlhUhlXFtcoAAAAAASUVORK5CYII=")}.editinline tr.deleted td:hover{cursor:default}.editinline tr.deleted td:first-child{background-image:none!important}.editinline-stacked{min-width:758px}.editinline-stacked .inline-object{margin-left:210px;background:white}.editinline-stacked .inline-source{float:left;width:200px;background:#f8f8f8}.editinline-stacked .inline-splitter{float:left;width:9px;background:#f8f8f8 url("data:image/gif;charset=utf-8;base64,R0lGODlhBQAFALMAADw9PCAgILy+u7W1tba2tvr6+jc3N/n5+Z2dneTk5Le3t2BgYG1tbc7OznFxcf///yH5BAAAAAAALAAAAAAFAAUAAAQTcLDAiDPAuIUEWsrxHEqTFEkTAQA7") 50% 50% no-repeat;border-right:1px solid #ccc}.editinline-stacked .controls{clear:both;background:#e1e1e1 url("data:image/gif;charset=utf-8;base64,R0lGODlhEQAfAMQAAPf39+3t7efn5+rq6v39/fr6+vDw8PPz8/Pz8uTk5PHx8eHh4e7u7vv7+/j4+Ojo6PX19eLi4vz8/Ozs7Pn5+fb29ubm5v7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAARAB8AAAWOICaOZGmeaKqubOu6VyzPdG3XRK7vfC79wKDw1ygaj8hiYclsOpeUqHRKjTqu2Kz2Cuh6v+BuZUwum8eQtHrNTh/e8Lj8gFDY7/i83cDv+/98DIKDhIWCAYiJiouIE46PkJGOA5SVlpeUD5qbnJ2aAqChoqOgFqanqKmmCaytrq+sEbKztLWyC7i5uru4IQA7") top left repeat-x;padding:3px 4px;font-size:11px;border-top:1px solid #ddd}.results_on_deck .ui-icon-trash{float:left;cursor:pointer}.results_on_deck{padding:.25em 0}form .aligned .results_on_deck{padding-left:38px;margin-left:7em}.results_on_deck>div{margin-bottom:.5em}.ui-autocomplete-loading{background:url("data:image/gif;charset=utf-8;base64,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") no-repeat;background-origin:content-box;background-position:right}ul.ui-autocomplete{max-width:60%;margin:0;padding:0;position:absolute}ul.ui-autocomplete li{list-style-type:none;padding:0}ul.ui-autocomplete li a{display:block;padding:2px 3px;cursor:pointer} diff --git a/roles/karaage3.1.17/templates/settings.py.j2 b/roles/karaage3.1.17/templates/settings.py.j2 new file mode 100644 index 0000000000000000000000000000000000000000..aa072761e4643dcde1226246fa8f9a54bef24965 --- /dev/null +++ b/roles/karaage3.1.17/templates/settings.py.j2 @@ -0,0 +1,330 @@ +# -*- coding: utf-8 -*- + +# Globally defined Karaage settings +# These settings will be used for karaage-admin and karaage-registration. + +# Some of these values have sensible defaults. Settings that don't have a +# sensible default must be configured manually. + +# Other Django settings are also possible, this list is not a comprehensive +# list of all settings. + +# Copyright 2010-2011, 2014-2015 VPAC +# Copyright 2010-2011 The University of Melbourne +# +# Django settings +# + +# A boolean that turns on/off debug mode. +# +# Never deploy a site into production with DEBUG turned on. +# +# Did you catch that? NEVER deploy a site into production with DEBUG turned on. +# +# One of the main features of debug mode is the display of detailed error +# pages. If your app raises an exception when DEBUG is True, Django will +# display a detailed traceback, including a lot of metadata about your +# environment, such as all the currently defined Django settings (from +# settings.py). +# +# default: DEBUG = False +# +# DEBUG = True + +# Implemented by Shahaan due to the django-pipeline bug +PIPELINE_ENABLED = False +STATICFILES_STORAGE = 'pipeline.storage.PipelineStorage' + +# FQDN host, used in default settings for :setting:`ALLOWED_HOSTS`, +# :setting:`REGISTRATION_BASE_URL`, and :setting:`ADMIN_BASE_URL`. +# +# default: HTTP_HOST = FQDN hostname +# +HTTP_HOST = "{% for host in groups['karaage-server'] %}{{ hostvars[host]['ansible_fqdn'] }}{% endfor %}" + +# A list of strings representing the host/domain names that this Django site +# can serve. This is a security measure to prevent an attacker from poisoning +# caches and password reset emails with links to malicious hosts by submitting +# requests with a fake HTTP Host header, which is possible even under many +# seemingly-safe web server configurations. +# +# %(HOST) will be substituted with the HTTP_HOST setting. +# +# default: ALLOWED_HOSTS = ["%(HOST)s"] +# +# ALLOWED_HOSTS = ["www.example.org"] + +# Whether to use a secure cookie for the session cookie. If this is set to +# True, the cookie will be marked as “secure,†which means browsers may ensure +# that the cookie is only sent under an HTTPS connection. +# +# default: SESSION_COOKIE_SECURE = True +# +# SESSION_COOKIE_SECURE = False + +# A tuple that lists people who get code error notifications. When DEBUG=False +# and a view raises an exception, Django will email these people with the full +# exception information. Each member of the tuple should be a tuple of (Full +# name, email address). +ADMINS = ( + # ('Your Name', 'your_email@domain.com'), +) + +# A tuple in the same format as ADMINS that specifies who should get broken +# link notifications when BrokenLinkEmailsMiddleware is enabled. +MANAGERS = ADMINS + +# A dictionary containing the settings for all databases to be used with +# Django. It is a nested dictionary whose contents maps database aliases to a +# dictionary containing the options for an individual database. +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.mysql', + 'NAME': 'karaage', + 'USER': 'karaage', + 'PASSWORD': 'imkaraage', + 'HOST': 'localhost', + 'PORT': '', + 'ATOMIC_REQUESTS': True, + } +} + +LDAP = { + 'default': { + 'ENGINE': 'tldap.backend.fake_transactions', + 'URI': 'ldaps://{% for host in groups['ldap-server'] %}{{ hostvars[host]['ansible_fqdn'] }}{% endfor %}/', + 'USER': '{{ ldapManager }}', + 'PASSWORD': '{{ ldapManagerPassword }}', + 'REQUIRE_TLS': True, + 'START_TLS': True, + 'TLS_CA': '{{ x509_cacert_file }}', + } +} + +MACHINE_CATEGORY_DATASTORES = { + 'ldap': [ + { + 'DESCRIPTION': 'LDAP datastore', + 'ENGINE': 'karaage.datastores.ldap.MachineCategoryDataStore', + 'LDAP': 'default', + 'ACCOUNT': 'karaage.datastores.ldap_schemas.openldap_account', + 'GROUP': 'karaage.datastores.ldap_schemas.openldap_account_group', + 'PRIMARY_GROUP': "institute", + 'DEFAULT_PRIMARY_GROUP': "ldap", + 'HOME_DIRECTORY': "/home/%(uid)s", + 'LOCKED_SHELL': "/usr/local/sbin/locked", + 'NUMBER_SCHEME': 'default', + 'LDAP_ACCOUNT_BASE': 'ou=Accounts,dc=monash,dc=edu,dc=au', + 'LDAP_GROUP_BASE': 'ou=Groups,dc=monash,dc=edu,dc=au', + }, + ], + 'dummy': [ + ], +} + +GLOBAL_DATASTORES = [ + { + 'DESCRIPTION': 'LDAP datastore', + 'ENGINE': 'karaage.datastores.ldap.GlobalDataStore', + 'LDAP': 'default', + 'PERSON': 'karaage.datastores.ldap_schemas.openldap_person', + 'GROUP': 'karaage.datastores.ldap_schemas.openldap_person_group', + 'NUMBER_SCHEME': 'global', + 'LDAP_PERSON_BASE': 'ou=People,dc=monash,dc=edu,dc=au', + 'LDAP_GROUP_BASE': 'ou=People_Groups,dc=monash,dc=edu,dc=au', + }, +] +# The email address that error messages come from, such as those sent to ADMINS +# and MANAGERS. +SERVER_EMAIL = 'karaage@example.org' + +# The host to use for sending email. +EMAIL_HOST = 'localhost' + +# Subject-line prefix for email messages sent with django.core.mail.mail_admins +# or django.core.mail.mail_managers. You’ll probably want to include the +# trailing space. +EMAIL_SUBJECT_PREFIX = '[Karaage] - ' + +# Local time zone for this installation. Choices can be found here: +# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name +# although not all choices may be available on all operating systems. +# If running in a Windows environment this must be set to the same as your +# system time zone. +TIME_ZONE = 'Australia/Melbourne' + +# Language code for this installation. All choices can be found here: +# http://www.i18nguy.com/unicode/language-identifiers.html +LANGUAGE_CODE = 'en-au' + +# A secret key for a particular Django installation. This is used to provide +# cryptographic signing, and should be set to a unique, unpredictable value. +SECRET_KEY = '' + +# A data structure containing configuration information. The contents of this +# data structure will be passed as the argument to the configuration method +# described in LOGGING_CONFIG. +LOGGING = { + 'version': 1, + 'disable_existing_loggers': False, + 'formatters': { + 'verbose': { + 'format': '%(levelname)s %(asctime)s ' + '%(module)s %(process)d %(thread)d %(message)s' + }, + 'simple': { + 'format': '%(levelname)s %(message)s' + }, + }, + 'handlers': { + 'mail_admins': { + 'level': 'ERROR', + 'class': 'django.utils.log.AdminEmailHandler' + }, + 'django_file': { + 'level': 'WARNING', + 'class': 'karaage.common.logging.FileHandler', + 'filename': '/var/log/karaage3/django.log', + 'formatter': 'verbose', + 'owner': ['www-data', 'www-data'], + }, + 'karaage_file': { + 'level': 'WARNING', + 'class': 'karaage.common.logging.FileHandler', + 'filename': '/var/log/karaage3/karaage.log', + 'formatter': 'verbose', + 'owner': ['www-data', 'www-data'], + }, + # 'ldap_file': { + # 'level': 'DEBUG', + # 'class': 'karaage.common.logging.FileHandler', + # 'filename': '/var/log/karaage3/ldap.log', + # 'formatter': 'verbose', + # 'owner': ['www-data', 'www-data'], + # }, + # 'mam_file': { + # 'level': 'DEBUG', + # 'class': 'karaage.common.logging.FileHandler', + # 'filename': '/var/log/karaage3/mam.log', + # 'formatter': 'verbose', + # 'owner': ['www-data', 'www-data'], + # }, + # 'slurm_file': { + # 'level': 'DEBUG', + # 'class': 'karaage.common.logging.FileHandler', + # 'filename': '/var/log/karaage3/slurm.log', + # 'formatter': 'verbose', + # 'owner': ['www-data', 'www-data'], + # }, + }, + 'loggers': { + '': { + 'handlers': ['mail_admins'], + 'level': 'ERROR', + 'propagate': True, + }, + 'django': { + 'handlers': ['django_file'], + 'level': 'DEBUG', + 'propagate': True, + }, + 'karaage': { + 'handlers': ['karaage_file'], + 'level': 'DEBUG', + 'propagate': True, + }, + # 'karaage.datastores.ldap': { + # 'handlers': ['ldap_file'], + # 'level': 'DEBUG', + # 'propagate': True, + # }, + # 'karaage.datastores.mam': { + # 'handlers': ['mam_file'], + # 'level': 'DEBUG', + # 'propagate': True, + # }, + # 'karaage.datastores.slurm': { + # 'handlers': ['slurm_file'], + # 'level': 'DEBUG', + # 'propagate': True, + # }, + }, +} + + +# +# Karaage settings +# + +# Users are advised to contact this address if having problems. +# This is also used as the from address in outgoing emails. +ACCOUNTS_EMAIL = 'accounts@example.com' + +# This organisation name, used in outgoing emails. +ACCOUNTS_ORG_NAME = 'Example' + +# Registration base URL - Used in email templates +# Uncomment to override default +# +# %(HOST) will be substituted with the HTTP_HOST setting. +# +# default: REGISTRATION_BASE_URL = 'https://%(HOST)s/users' +# +# REGISTRATION_BASE_URL = 'https://accounts.example.org/users' + +# Admin base URL - Used in email templates +# Uncomment to override default +# +# %(HOST) will be substituted with the HTTP_HOST setting. +# +# default: ADMIN_BASE_URL = 'https://%(HOST)s/kgadmin' +# +# ADMIN_BASE_URL = 'https://accounts.example.org/kgadmin' + +# Is Shibboleth supported? +# +# default: SHIB_SUPPORTED = False +# +# SHIB_SUPPORTED = True + +# Path to AUP policy. Note that setting this will not disable the Karaage +# default page, it might be better to replace the AUP with a file in +# the templates directory ``karaage/common/aup-detail.html`` if required. +# +# default: Django template ``karaage/common/aup-detail.html`` +# +# AUP_URL = "https://site.example.org/users/aup/" + +# Do we allow anonymous users to request accounts? +# +# default: ALLOW_REGISTRATIONS = False +# +# ALLOW_REGISTRATIONS = True + +# Do we allow any logged in user to access all usage information? +# +# default: USAGE_IS_PUBLIC = True +# +# USAGE_IS_PUBLIC = False + +# Settings to restrict the valid list of email addresses we allow in +# applications. EMAIL_MATCH_TYPE can be "include" or "exclude". If "include" +# then the email address must match one of the RE entries in EMAIL_MATCH_LIST. +# If "exclude" then then email address must not match of the the RE entries in +# EMAIL_MATCH_LIST. +# +# default: allow any email address +# +# EMAIL_MATCH_TYPE="include" +# EMAIL_MATCH_LIST=["@vpac.org$", "@v3.org.au$", "^tux@.*au$"] + +# List of Karaage plugins +# +# default: PLUGINS = [] +# +PLUGINS = [ + 'karaage.plugins.kgapplications.plugin', + 'karaage.plugins.kgsoftware.plugin', + 'karaage.plugins.kgsoftware.applications.plugin', + 'karaage.plugins.kgusage.plugin', + ] diff --git a/roles/karaage3.1.17/templates/sqlsettings.sql.j2 b/roles/karaage3.1.17/templates/sqlsettings.sql.j2 new file mode 100644 index 0000000000000000000000000000000000000000..6ba02e7226423c988f46b45970cc5701b213d661 --- /dev/null +++ b/roles/karaage3.1.17/templates/sqlsettings.sql.j2 @@ -0,0 +1,4 @@ +CREATE DATABASE IF NOT EXISTS karaage; +DROP USER 'karaage'@'localhost'; +CREATE USER 'karaage'@'localhost' IDENTIFIED BY '{{ karaage_sql_password }}'; +GRANT ALL PRIVILEGES ON karaage.* TO 'karaage'@'localhost'; diff --git a/roles/karaage3.1.17/templates/ssl.conf.j2 b/roles/karaage3.1.17/templates/ssl.conf.j2 new file mode 100644 index 0000000000000000000000000000000000000000..5f69be6410a46e50397924ea932b113d825533e8 --- /dev/null +++ b/roles/karaage3.1.17/templates/ssl.conf.j2 @@ -0,0 +1,82 @@ +<IfModule mod_ssl.c> +# +# Pseudo Random Number Generator (PRNG): +# Configure one or more sources to seed the PRNG of the SSL library. +# The seed data should be of good random quality. +# WARNING! On some platforms /dev/random blocks if not enough entropy +# is available. This means you then cannot use the /dev/random device +# because it would lead to very long connection times (as long as +# it requires to make more entropy available). But usually those +# platforms additionally provide a /dev/urandom device which doesn't +# block. So, if available, use this one instead. Read the mod_ssl User +# Manual for more details. +# +SSLRandomSeed startup builtin +SSLRandomSeed startup file:/dev/urandom 512 +SSLRandomSeed connect builtin +SSLRandomSeed connect file:/dev/urandom 512 + +## +## SSL Global Context +## +## All SSL configuration in this context applies both to +## the main server and all SSL-enabled virtual hosts. +## + +# +# Some MIME-types for downloading Certificates and CRLs +# +AddType application/x-x509-ca-cert .crt +AddType application/x-pkcs7-crl .crl + +# Pass Phrase Dialog: +# Configure the pass phrase gathering process. +# The filtering dialog program (`builtin' is a internal +# terminal dialog) has to provide the pass phrase on stdout. +SSLPassPhraseDialog builtin + +# Inter-Process Session Cache: +# Configure the SSL Session Cache: First the mechanism +# to use and second the expiring timeout (in seconds). +# (The mechanism dbm has known memory leaks and should not be used). +#SSLSessionCache dbm:${APACHE_RUN_DIR}/ssl_scache +SSLSessionCache shmcb:${APACHE_RUN_DIR}/ssl_scache(512000) +SSLSessionCacheTimeout 300 + +# Semaphore: +# Configure the path to the mutual exclusion semaphore the +# SSL engine uses internally for inter-process synchronization. +Mutex default + +# SSL Cipher Suite: +# List the ciphers that the client is permitted to negotiate. See the +# ciphers(1) man page from the openssl package for list of all available +# options. +# Enable only secure ciphers: +SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA + +# Speed-optimized SSL Cipher configuration: +# If speed is your main concern (on busy HTTPS servers e.g.), +# you might want to force clients to specific, performance +# optimized ciphers. In this case, prepend those ciphers +# to the SSLCipherSuite list, and enable SSLHonorCipherOrder. +# Caveat: by giving precedence to RC4-SHA and AES128-SHA +# (as in the example below), most connections will no longer +# have perfect forward secrecy - if the server's key is +# compromised, captures of past or future traffic must be +# considered compromised, too. +#SSLCipherSuite RC4-SHA:AES128-SHA:HIGH:MEDIUM:!aNULL:!MD5 +#SSLHonorCipherOrder on + +# enable only secure protocols: SSLv3 and TLSv1, but not SSLv2 +SSLProtocol all -SSLv2 -SSLv3 + +# Allow insecure renegotiation with clients which do not yet support the +# secure renegotiation protocol. Default: Off +#SSLInsecureRenegotiation on + +# Whether to forbid non-SNI clients to access name based virtual hosts. +# Default: Off +#SSLStrictSNIVHostCheck On + +</IfModule> diff --git a/roles/karaage3.1.17/vars/main.yml b/roles/karaage3.1.17/vars/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..efdcf24cf28ce4cc44c16c5db86cc1273733888e --- /dev/null +++ b/roles/karaage3.1.17/vars/main.yml @@ -0,0 +1,15 @@ +--- +countryName: "AU" +reginalName: "Victoria" +cityName: "Melbourne" +organizationName: "Monash University" +emailAddress: "shahaan@gmail.com" +organizationUnit: "defaultUnit" +ldapDomain: "dc=monash,dc=edu,dc=au" +ldapManager: "cn=Manager,dc=monash,dc=edu,dc=au" +ldapBindDN: "cn=ldapuser,ou=users,dc=monash,dc=edu,dc=au" +ldapUserBase: "ou=users,dc=monash,dc=edu,dc=au" +ldapGroupBase: "ou=groups,dc=monash,dc=edu,dc=au" +ldapBase: "dc=monash,dc=edu,dc=au" +ldapURI: "ldaps://{{ ansible_hostname }}" +smtp_smarthost: "{{ ansible_hostname }}" diff --git a/roles/ldapserver/vars/meta/main.yml b/roles/ldapserver/vars/meta/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..46f5a2316b48320534f9e99db594e1bb61d34744 --- /dev/null +++ b/roles/ldapserver/vars/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - { role: easy-rsa-certificate, x509_csr_args: "--server" } diff --git a/roles/ldapserver/vars/tasks/karaageSpecific.yml b/roles/ldapserver/vars/tasks/karaageSpecific.yml new file mode 100644 index 0000000000000000000000000000000000000000..63ca884ac745224685d016f63ed60f686f198bc5 --- /dev/null +++ b/roles/ldapserver/vars/tasks/karaageSpecific.yml @@ -0,0 +1,14 @@ +--- +- + name: Adding default ppolicy schema + shell: ldapadd -Y EXTERNAL -H ldapi:/// < /etc/ldap/schema/ppolicy.ldif +- + name: templating tls settings + template: src=tls_settings.ldif.j2 dest=/tmp/tls_settings.ldif mode=600 +- + name: initialise server ssl + shell: ldapmodify -Y EXTERNAL -H ldapi:/// < /tmp/tls_settings.ldif + sudo: true +- + name: templating ldap.conf + template: src=ldap.conf.j2 dest=/etc/ldap/ldap.conf mode=600 diff --git a/roles/ldapserver/vars/tasks/main.yml b/roles/ldapserver/vars/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..a5ec4d6992069cba7b5dcc69e2d51c57829d9e29 --- /dev/null +++ b/roles/ldapserver/vars/tasks/main.yml @@ -0,0 +1,157 @@ +--- + +- include_vars: "{{ hostvars[ansible_hostname]['ansible_distribution'] }}_{{ hostvars[ansible_hostname]['ansible_distribution_version'] }}_{{ ansible_architecture }}.yml" + +- name: install system packages apt + apt: name={{ item }} state=installed update_cache=true + sudo: true + with_items: system_packages + when: ansible_os_family == 'Debian' + +- name: install system packages yum + yum: name={{ item }} state=installed + sudo: true + with_items: system_packages + when: ansible_os_family == 'RedHat' + +- name: hash password + command: /usr/sbin/slappasswd -h {SSHA} -s {{ ldapManagerPassword }} + register: ldapManagerHash + +- name: hash binddn password + command: /usr/sbin/slappasswd -h {SSHA} -s {{ ldapBindDNPassword }} + register: ldapBindDNHash + +- name: template ssl.ldif + template: src=ssl_ldif.j2 dest=/tmp/ssl.ldif mode=600 + +- name: template manager.ldif + template: src=manager_ldif.j2 dest=/tmp/manager.ldif mode=600 + sudo: true + +- name: template binddn.ldif + template: src=binddn_ldif.j2 dest=/tmp/binddn.ldif mode=600 + sudo: true + +- name: template root.ldif + template: src=root_ldif.j2 dest=/tmp/root.ldif + +- name: template accounts.ldif + template: src=accounts_ldif.j2 dest=/tmp/accounts.ldif + +- name: template groups.ldif + template: src=groups_ldif.j2 dest=/tmp/groups.ldif + +- name: template acls.ldif + template: src=acls_ldif.j2 dest=/tmp/acls.ldif + +- name: template ppolicy_moduleload.ldif + template: src=ppolicy_moduleload_ldif.j2 dest=/tmp/ppolicy_moduleload.ldif + +- name: template ppolicy_overlay.ldif + template: src=ppolicy_overlay_ldif.j2 dest=/tmp/ppolicy_overlay.ldif + +- name: template pwpolices.ldif + template: src=pwpolicies_ldif.j2 dest=/tmp/pwpolicies.ldif + +- name: template default_ppolicy.ldif + template: src=default_ppolicy_ldif.j2 dest=/tmp/default_ppolicy.ldif + + +- name: copy cert + command: cp /etc/ssl/certs/server.crt /etc/openldap/certs/ldapcert.pem + sudo: true + +- name: copy cacert + command: cp /etc/ssl/certs/ca.crt /etc/openldap/certs/cacert.pem + sudo: true + +- name: copy key + command: cp /etc/ssl/private/server.key /etc/openldap/certs/ldapkey.pem + sudo: true + +- name: chmod key + file: path=/etc/openldap/certs/ldapkey.pem owner={{ ldapuser }} group={{ ldapgroup }} mode=600 + sudo: true + +- name: enable ssl centos + lineinfile: regexp="SLAPD_LDAPS=no" state=present line="SLAPD_LDAPS=yes" dest=/etc/sysconfig/ldap + sudo: true + when: ansible_os_family == 'RedHat' + +- name: start ldap + service: name=slapd state=restarted + sudo: true + +- name: check TLS config + shell: "slapcat -b cn=config | grep 'olcTLSCertificateKeyFile: /etc/openldap/certs/ldapkey.pem'" + ignore_errors: true + sudo: true + register: tlsConfigured + +- name: check Manager config + shell: "slapcat -b cn=config | grep 'olcRootDN: {{ ldapManager }}'" + ignore_errors: true + sudo: true + register: managerConfigured + +# slapcat does a line wrap at character 78. Don't attempt to match on {{ ldapManager }} as it will cross two lines +- name: check ACL config + shell: "slapcat -b cn=config | grep 'olcAccess:' | grep 'cn=Manager'" + ignore_errors: true + sudo: true + register: aclConfigured + + +- name: check DIT config + shell: "ldapsearch -D {{ ldapManager }} -w {{ ldapManagerPassword }} -b {{ ldapBase }} -x -H ldap://localhost objectClass=dcObject" + ignore_errors: true + register: ditConfigured + +- name: check Accounts config + shell: "ldapsearch -D {{ ldapManager }} -w {{ ldapManagerPassword }} -b {{ ldapUserBase }} -x -H ldap://localhost objectClass=*" + ignore_errors: true + register: accountsConfigured + +- name: check Groups config + shell: "ldapsearch -D {{ ldapManager }} -w {{ ldapManagerPassword }} -b {{ ldapGroupBase }} -x -H ldap://localhost objectClass=*" + ignore_errors: true + register: groupsConfigured + +- name: check binddn config + shell: "ldapsearch -D {{ ldapBindDN }} -w {{ ldapBindDNPassword }} -b {{ ldapDomain }} -x -H ldap://localhost objectClass=dcObject" + ignore_errors: true + register: binddnConfigured + + +- name: initialise server ssl + shell: ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/ssl.ldif -D cn=config + sudo: true + when: tlsConfigured|failed + +- name: initialise server manager + shell: ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/manager.ldif -D cn=config + sudo: true + when: managerConfigured|failed + +- name: initialise server acls + shell: ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/acls.ldif -D cn=config + sudo: true + when: aclConfigured|failed + +- name: add DIT root + shell: ldapadd -x -D {{ ldapManager }} -w {{ ldapManagerPassword }} -x -H ldap://localhost -f /tmp/root.ldif + when: ditConfigured|failed + +- name: add Accounts OU + shell: ldapadd -x -D {{ ldapManager }} -w {{ ldapManagerPassword }} -x -H ldap://localhost -f /tmp/accounts.ldif + when: accountsConfigured|failed + +- name: add Groups OU + shell: ldapadd -x -D {{ ldapManager }} -w {{ ldapManagerPassword }} -x -H ldap://localhost -f /tmp/groups.ldif + when: groupsConfigured|failed + +- name: add binddn + shell: ldapadd -x -D {{ ldapManager }} -w {{ ldapManagerPassword }} -x -H ldap://localhost -f /tmp/binddn.ldif + sudo: true + when: binddnConfigured|failed diff --git a/roles/ldapserver/vars/templates/accounts_ldif.j2 b/roles/ldapserver/vars/templates/accounts_ldif.j2 new file mode 100644 index 0000000000000000000000000000000000000000..e057dd1b491e270f831b3d4b79e803ae4c3560a7 --- /dev/null +++ b/roles/ldapserver/vars/templates/accounts_ldif.j2 @@ -0,0 +1,2 @@ +dn: {{ ldapUserBase }} +objectClass: organizationalUnit diff --git a/roles/ldapserver/vars/templates/acls_ldif.j2 b/roles/ldapserver/vars/templates/acls_ldif.j2 new file mode 100644 index 0000000000000000000000000000000000000000..c9df71971300ed28b1a06cff14f346c36dca8524 --- /dev/null +++ b/roles/ldapserver/vars/templates/acls_ldif.j2 @@ -0,0 +1,6 @@ +dn: olcDatabase={2}bdb,cn=config +changetype: modify +add: olcAccess +olcAccess: {0}to attrs=userPassword by dn="{{ ldapManager }}" write by self write by * auth +olcAccess: {1}to attrs=shadowLastChange by dn="{{ ldapManager }}" write by self write by * read +olcAccess: {2}to * by users read by anonymous auth diff --git a/roles/ldapserver/vars/templates/binddn_ldif.j2 b/roles/ldapserver/vars/templates/binddn_ldif.j2 new file mode 100644 index 0000000000000000000000000000000000000000..3f2e31b68f556fb535f3ca06cb189d45f48077d3 --- /dev/null +++ b/roles/ldapserver/vars/templates/binddn_ldif.j2 @@ -0,0 +1,5 @@ +dn: {{ ldapBindDN }} +objectClass: inetOrgPerson +cn: binddn +sn: binddn +userPassword: {{ ldapBindDNHash.stdout }} diff --git a/roles/ldapserver/vars/templates/default_ppolicy_ldif.j2 b/roles/ldapserver/vars/templates/default_ppolicy_ldif.j2 new file mode 100644 index 0000000000000000000000000000000000000000..cc638a27e219461a3b033eee4701d53ca594bff3 --- /dev/null +++ b/roles/ldapserver/vars/templates/default_ppolicy_ldif.j2 @@ -0,0 +1,19 @@ +dn: cn=default,ou=pwpolicies,{{ ldapDomain }} +cn: default +objectClass: pwdPolicy +objectClass: top +objectClass: device +pwdAllowUserChange: TRUE +pwdAttribute: 2.5.4.35 +pwdExpireWarning: 604800 +pwdFailureCountInterval: 30 +pwdGraceAuthNLimit: 0 +pwdInHistory: 10 +pwdLockout: TRUE +pwdLockoutDuration: 3600 +pwdMaxAge: 7776000 +pwdMaxFailure: 5 +pwdMinAge: 3600 +pwdMinLength: 12 +pwdMustChange: FALSE +pwdSafeModify: FALSE diff --git a/roles/ldapserver/vars/templates/groups_ldif.j2 b/roles/ldapserver/vars/templates/groups_ldif.j2 new file mode 100644 index 0000000000000000000000000000000000000000..70386e0f9290e627b128dc7b92834d114bf714c1 --- /dev/null +++ b/roles/ldapserver/vars/templates/groups_ldif.j2 @@ -0,0 +1,2 @@ +dn: {{ ldapGroupBase }} +objectClass: organizationalUnit diff --git a/roles/ldapserver/vars/templates/ldap.conf.j2 b/roles/ldapserver/vars/templates/ldap.conf.j2 new file mode 100644 index 0000000000000000000000000000000000000000..a6c19aac7e1de7c9885a021b821d72ef785f96dc --- /dev/null +++ b/roles/ldapserver/vars/templates/ldap.conf.j2 @@ -0,0 +1,16 @@ +# +# LDAP Defaults +# + +# See ldap.conf(5) for details +# This file should be world readable but not world writable. + +#BASE dc=example,dc=com +URI {{ ldapURI }} + +#SIZELIMIT 12 +#TIMELIMIT 15 +#DEREF never + +# TLS certificates (needed for GnuTLS) +TLS_CACERT {{ x509_cacert_file }} diff --git a/roles/ldapserver/vars/templates/manager_ldif.j2 b/roles/ldapserver/vars/templates/manager_ldif.j2 new file mode 100644 index 0000000000000000000000000000000000000000..5cdf02169cbc2dc0e6cffc01122349fbc1cac325 --- /dev/null +++ b/roles/ldapserver/vars/templates/manager_ldif.j2 @@ -0,0 +1,10 @@ +dn: olcDatabase={2}bdb,cn=config +changetype: modify +replace: olcSuffix +olcSuffix: {{ ldapDomain }} +- +replace: olcRootDN +olcRootDN: {{ ldapManager }} +- +add: olcRootPW +olcRootPW: {{ ldapManagerHash.stdout }} diff --git a/roles/ldapserver/vars/templates/ppolicy_accountsAndGroups.ldif.j2 b/roles/ldapserver/vars/templates/ppolicy_accountsAndGroups.ldif.j2 new file mode 100644 index 0000000000000000000000000000000000000000..1adb4c4fbf581bf2badcefdf8ee2841da5075987 --- /dev/null +++ b/roles/ldapserver/vars/templates/ppolicy_accountsAndGroups.ldif.j2 @@ -0,0 +1,14 @@ +dn: ou=policies,dc=example,dc=org +objectClass: organizationalUnit + +dn: ou=Accounts,dc=example,dc=org +objectClass: organizationalUnit + +dn: ou=Groups,dc=example,dc=org +objectClass: organizationalUnit + +dn: cn=default,ou=policies,dc=example,dc=org +objectClass: top +objectClass: device +objectClass: pwdPolicy +pwdAttribute: userPassword diff --git a/roles/ldapserver/vars/templates/ppolicy_moduleload_ldif.j2 b/roles/ldapserver/vars/templates/ppolicy_moduleload_ldif.j2 new file mode 100644 index 0000000000000000000000000000000000000000..084cc60366dc216b2c24ae1a3d5ef29cdf5e4957 --- /dev/null +++ b/roles/ldapserver/vars/templates/ppolicy_moduleload_ldif.j2 @@ -0,0 +1,5 @@ +dn: cn=module,cn=config +objectClass: olcModuleList +cn: module +olcModulePath: /usr/lib64/openldap/ +olcModuleLoad: ppolicy.la diff --git a/roles/ldapserver/vars/templates/ppolicy_overlay_ldif.j2 b/roles/ldapserver/vars/templates/ppolicy_overlay_ldif.j2 new file mode 100644 index 0000000000000000000000000000000000000000..942c69c71ac8ab1c0a52e0079a25054e04a69f38 --- /dev/null +++ b/roles/ldapserver/vars/templates/ppolicy_overlay_ldif.j2 @@ -0,0 +1,7 @@ +dn: olcOverlay=ppolicy,olcDatabase={2}bdb,cn=config +olcOverlay: ppolicy +objectClass: olcOverlayConfig +objectClass: olcPPolicyConfig +olcPPolicyHashCleartext: TRUE +olcPPolicyUseLockout: FALSE +olcPPolicyDefault: cn=default,ou=pwpolicies,{{ ldapDomain }} diff --git a/roles/ldapserver/vars/templates/pwpolicies_ldif.j2 b/roles/ldapserver/vars/templates/pwpolicies_ldif.j2 new file mode 100644 index 0000000000000000000000000000000000000000..1f0b93cd844eea2f418ab6b20a3704c7dbf2e386 --- /dev/null +++ b/roles/ldapserver/vars/templates/pwpolicies_ldif.j2 @@ -0,0 +1,4 @@ +dn: ou=pwpolicies,{{ ldapDomain }} +objectClass: organizationalUnit +objectClass: top +ou: pwpolicies diff --git a/roles/ldapserver/vars/templates/root_ldif.j2 b/roles/ldapserver/vars/templates/root_ldif.j2 new file mode 100644 index 0000000000000000000000000000000000000000..c3a43f303bc6f61eff0ecad531fbe96b0fa80e4a --- /dev/null +++ b/roles/ldapserver/vars/templates/root_ldif.j2 @@ -0,0 +1,5 @@ +dn: {{ ldapDomain }} +objectClass: dcObject +objectClass: organization +o: {{ ansible_domain }} +description: root diff --git a/roles/ldapserver/vars/templates/ssl_ldif.j2 b/roles/ldapserver/vars/templates/ssl_ldif.j2 new file mode 100644 index 0000000000000000000000000000000000000000..9d7d804385cc6b167bc9c9ca24b7c6fb41ebc7f4 --- /dev/null +++ b/roles/ldapserver/vars/templates/ssl_ldif.j2 @@ -0,0 +1,9 @@ +dn: cn=config +replace: olcTLSCACertificateFile +olcTLSCACertificateFile: /etc/openldap/certs/cacert.pem +- +replace: olcTLSCertificateFile +olcTLSCertificateFile: /etc/openldap/certs/ldapcert.pem +- +replace: olcTLSCertificateKeyFile +olcTLSCertificateKeyFile: /etc/openldap/certs/ldapkey.pem diff --git a/roles/ldapserver/vars/templates/tls_settings.ldif.j2 b/roles/ldapserver/vars/templates/tls_settings.ldif.j2 new file mode 100644 index 0000000000000000000000000000000000000000..5a73e7793912133dfc13cdf16661fa115c68d36c --- /dev/null +++ b/roles/ldapserver/vars/templates/tls_settings.ldif.j2 @@ -0,0 +1,4 @@ +dn: olcDatabase={1}hdb,cn=config +changetype: modify +replace: olcSecurity +olcSecurity: tls=1 diff --git a/roles/ldapserver/vars/vars/CentOS_6.5_x86_64.yml b/roles/ldapserver/vars/vars/CentOS_6.5_x86_64.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7898718dcef361447091f6a9b474a6505bd3343 --- /dev/null +++ b/roles/ldapserver/vars/vars/CentOS_6.5_x86_64.yml @@ -0,0 +1,5 @@ +--- + system_packages: + - openldap-servers + - openldap-clients + - openssl diff --git a/roles/ldapserver/vars/vars/CentOS_6.6_x86_64.yml b/roles/ldapserver/vars/vars/CentOS_6.6_x86_64.yml new file mode 100644 index 0000000000000000000000000000000000000000..f7898718dcef361447091f6a9b474a6505bd3343 --- /dev/null +++ b/roles/ldapserver/vars/vars/CentOS_6.6_x86_64.yml @@ -0,0 +1,5 @@ +--- + system_packages: + - openldap-servers + - openldap-clients + - openssl diff --git a/roles/ldapserver/vars/vars/main.yml b/roles/ldapserver/vars/vars/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..b62f382c04ae4705ff66027ca48862d011d757c1 --- /dev/null +++ b/roles/ldapserver/vars/vars/main.yml @@ -0,0 +1,7 @@ +--- + ldapuser: ldap + ldapgroup: ldap + system_packages: + - openldap-servers + - openldap-clients + - openssl diff --git a/roles/nfs-client/vars/main.yml b/roles/nfs-client/vars/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..6d2463864499fabc55babf845364212e3a93988e --- /dev/null +++ b/roles/nfs-client/vars/main.yml @@ -0,0 +1,5 @@ +--- +# This is a list of exports, individual entry for each mount. +exportList: + - { name : '/mnt/test-nfs', src : '/mnt',fstype : 'nfs', opts : 'vers=3,noatime,rsize=16384,wsize=16384,hard,intr,tcp,nolock' , interface : 'tun0', srvopts: 'rw,sync,root_squash' } + - { name : '/mnt/test-volume', src : '/mnt/vdc',fstype : 'nfs', opts : 'vers=3,noatime,rsize=16384,wsize=16384,hard,intr,tcp,nolock' , interface : 'tun0', srvopts: 'rw,sync,root_squash' } diff --git a/roles/nfs-server/defaults/main.yml b/roles/nfs-server/defaults/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..f451f21cb4da0e1d012e0ebb709946b186679d45 --- /dev/null +++ b/roles/nfs-server/defaults/main.yml @@ -0,0 +1,6 @@ +--- +mkFileSystems: + - { fstype : 'ext4', dev : '/dev/vdc', opts: '' } +mntFileSystems: + - { name: '/mnt/vdc', src: '/dev/vdc', mntopts: 'loop', fstype : 'ext4'} +configDiskDevice: true diff --git a/roles/nfs-server/defaults/readme.txt b/roles/nfs-server/defaults/readme.txt new file mode 100644 index 0000000000000000000000000000000000000000..9561db2c7df216e32f77a1f63f4f2f17d261dc28 --- /dev/null +++ b/roles/nfs-server/defaults/readme.txt @@ -0,0 +1,4 @@ +--- +mkFileSystems: + - { fstype : 'ext4', dev : '/dev/vdc', opts: '' } +configDiskDevice: true diff --git a/roles/nfs-server/tasks/mkFilesystem.yml b/roles/nfs-server/tasks/mkFilesystem.yml index b25a554d6960ca9736a1dcee46ec0d08276a9eff..7466827d06625261d18254b5ca02619fcce258de 100644 --- a/roles/nfs-server/tasks/mkFilesystem.yml +++ b/roles/nfs-server/tasks/mkFilesystem.yml @@ -6,8 +6,13 @@ when: mkFileSystems is defined - name: Mount device +<<<<<<< HEAD mount: name={{ item.name }} src={{ item.dev }} fstype={{ item.fstype }} opts={{ item.opts }} state=mounted with_items: mountFileSystems +======= + mount: name={{ item.name }} src={{ item.src }} fstype={{ item.fstype }} opts={{ item.mntopts }} state=mounted + with_items: mntFileSystems +>>>>>>> 90b67d1ef1d855521077ce6ccab2d41c55c1a3e6 sudo: true when: mountFileSystems is defined diff --git a/roles/syncExports/tasks/addExports.yml b/roles/syncExports/tasks/addExports.yml index 79484a27f8091d2390df226a0b62216c8c110d85..3e1aef2d3b1e53df58d1e4f4bf4d1d02abedceb5 100644 --- a/roles/syncExports/tasks/addExports.yml +++ b/roles/syncExports/tasks/addExports.yml @@ -7,6 +7,7 @@ - name: "Templating /etc/exports" template: src=exports.j2 dest=/etc/exports owner=root group=root mode=644 sudo: true +<<<<<<< HEAD - name: "Start the Server" service: "name=nfs state=restarted" @@ -20,4 +21,11 @@ - name : "Pause ... clients sometimes have errors" command: sleep 60 +======= + notify: "Reload exports" +- name: "Restart the NFS server" + service: "name=nfs state=restarted" + delegate_to: "{{ nfs_server }}" + run_once: true +>>>>>>> 90b67d1ef1d855521077ce6ccab2d41c55c1a3e6 sudo: true diff --git a/roles/syncExports/vars/main.yml b/roles/syncExports/vars/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..9394537ddd47683d7a380d424b95175d6982ba5c --- /dev/null +++ b/roles/syncExports/vars/main.yml @@ -0,0 +1,3 @@ +--- +groupList: + - { name : 'computeNodes', interface : 'tun0' } diff --git a/vars/karaageVars.yml b/vars/karaageVars.yml new file mode 100644 index 0000000000000000000000000000000000000000..cdb16e0e0490e795783842d13651f77fdc28963f --- /dev/null +++ b/vars/karaageVars.yml @@ -0,0 +1,27 @@ +--- +countryName: "AU" +reginalName: "Victoria" +cityName: "Melbourne" +organizationName: "Monash University" +emailAddress: "shahaan@gmail.com" +organizationUnit: "defaultUnit" +ldapDomain: "dc=monash,dc=edu,dc=au" +ldapManager: "cn=admin,dc=monash,dc=edu,dc=au" +ldapBindDN: "cn=ldapuser,ou=users,dc=monash,dc=edu,dc=au" +ldapUserBase: "ou=users,dc=monash,dc=edu,dc=au" +ldapGroupBase: "ou=groups,dc=monash,dc=edu,dc=au" +ldapBase: "dc=monash,dc=edu,dc=au" +ldapURI: "{% for host in groups['ldap-server'] %}ldaps://{{ hostvars[host]['ansible_fqdn'] }}{% endfor %}" +smtp_smarthost: "{{ ansible_hostname }}" +x509_ca_server: "vm-118-138-240-183.erc.monash.edu.au" +ldapManagerPassword: "imldap" +ldapBindDNPassword: "imbinddn" +domain: "erc.monash.edu.au" +karaage_sql_password: "imkaraage" +mysql_root_password: "immysql" +x509_key_file: "/etc/ssl/private/server.key" +x509_cert_file: "/etc/ssl/certs/server.crt" +x509_cacert_file: "/etc/ssl/certs/ca.crt" +x509_csr_args: "" +x509_sign_args: "{{ x509_csr_args }}" +x509_common_name: "{{ ansible_fqdn }}"