From 257fd619aeaf6a0d588dc2adbb23c8e704dd4d07 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Mon, 1 Jun 2015 17:07:02 +0300 Subject: [PATCH 01/29] Validate contact specs against schema #2660 --- doc/schemas/contact-1.0.xsd | 32 ++---- doc/schemas/eis-1.0.xsd | 16 ++- spec/epp/contact_spec.rb | 13 ++- t | 195 ++++++++++++++++++++++++++++++++++++ 4 files changed, 221 insertions(+), 35 deletions(-) create mode 100644 t diff --git a/doc/schemas/contact-1.0.xsd b/doc/schemas/contact-1.0.xsd index dc2b366e6..9fa665a88 100644 --- a/doc/schemas/contact-1.0.xsd +++ b/doc/schemas/contact-1.0.xsd @@ -12,6 +12,7 @@ --> + @@ -94,7 +95,7 @@ --> - + - - + minOccurs="0"/> + + @@ -117,8 +117,7 @@ minOccurs="0"/> - + @@ -148,21 +147,6 @@ - - - - - - - - - - - - @@ -240,8 +224,6 @@ minOccurs="0"/> - @@ -331,8 +313,6 @@ minOccurs="0"/> - diff --git a/doc/schemas/eis-1.0.xsd b/doc/schemas/eis-1.0.xsd index 390c45579..98a73caf6 100644 --- a/doc/schemas/eis-1.0.xsd +++ b/doc/schemas/eis-1.0.xsd @@ -26,8 +26,8 @@ - + @@ -55,10 +55,11 @@ - + + + + + + + + diff --git a/spec/epp/contact_spec.rb b/spec/epp/contact_spec.rb index 02540e109..c57680845 100644 --- a/spec/epp/contact_spec.rb +++ b/spec/epp/contact_spec.rb @@ -2,6 +2,7 @@ require 'rails_helper' describe 'EPP Contact', epp: true do before :all do + @xsd = Nokogiri::XML::Schema(File.read('doc/schemas/contact-1.0.xsd')) @registrar1 = Fabricate(:registrar1) @registrar2 = Fabricate(:registrar2) @epp_xml = EppXml::Contact.new(cl_trid: 'ABC-12345') @@ -15,7 +16,7 @@ describe 'EPP Contact', epp: true do @extension = { legalDocument: { - value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==', + value: 'dGVzdCBmYWlsCg==', attrs: { type: 'pdf' } }, ident: { @@ -31,8 +32,10 @@ describe 'EPP Contact', epp: true do extension = @extension if extension.blank? defaults = { + id: nil, postalInfo: { name: { value: 'John Doe' }, + org: nil, addr: { street: { value: '123 Example' }, city: { value: 'Tallinn' }, @@ -48,7 +51,7 @@ describe 'EPP Contact', epp: true do end it 'fails if request xml is missing' do - response = epp_plain_request(@epp_xml.create, :xml) + response = epp_plain_request(@epp_xml.create, validate_input: false) response[:results][0][:msg].should == 'Required parameter missing: create > create > postalInfo > name [name]' response[:results][1][:msg].should == @@ -103,7 +106,7 @@ describe 'EPP Contact', epp: true do it 'successfully saves ident type' do extension = { legalDocument: { - value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==', + value: 'dGVzdCBmYWlsCg==', attrs: { type: 'pdf' } }, ident: { @@ -205,7 +208,7 @@ describe 'EPP Contact', epp: true do end it 'should generate server id when id is empty' do - response = create_request({ id: { value: '' } }) + response = create_request({ id: nil }) response[:msg].should == 'Command completed successfully' response[:result_code].should == '1000' @@ -381,7 +384,7 @@ describe 'EPP Contact', epp: true do it 'should update ident' do extension = { legalDocument: { - value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==', + value: 'dGVzdCBmYWlsCg==', attrs: { type: 'pdf' } }, ident: { diff --git a/t b/t new file mode 100644 index 000000000..fc3482031 --- /dev/null +++ b/t @@ -0,0 +1,195 @@ +diff --git a/doc/schemas/contact-1.0.xsd b/doc/schemas/contact-1.0.xsd +index dc2b366..9fa665a 100644 +--- a/doc/schemas/contact-1.0.xsd ++++ b/doc/schemas/contact-1.0.xsd +@@ -12,6 +12,7 @@ + --> +  +  ++   +  +  +  +@@ -94,7 +95,7 @@ + --> +  +  +-  ++   +  +  +  +  +-  +-  ++ minOccurs="0"/>  ++   ++  +  +  +  +@@ -117,8 +117,7 @@ + minOccurs="0"/> +  +  +-  ++   +  +  +  +@@ -148,21 +147,6 @@ +  +  +  +-  +-  +-  +-  +-  +-  +-  +-  +-  +-  +-  +- +  +  +@@ -240,8 +224,6 @@ + minOccurs="0"/> +  +-  +  +  +  +@@ -331,8 +313,6 @@ + minOccurs="0"/> +  +-  +  +  +  +diff --git a/doc/schemas/eis-1.0.xsd b/doc/schemas/eis-1.0.xsd +index 390c455..98a73ca 100644 +--- a/doc/schemas/eis-1.0.xsd ++++ b/doc/schemas/eis-1.0.xsd +@@ -26,8 +26,8 @@ +  +  +- ++  +  +  +  +@@ -55,10 +55,11 @@ +  +  +  +-  ++  ++ ++  ++  ++  ++  ++  ++  +  +diff --git a/spec/epp/contact_spec.rb b/spec/epp/contact_spec.rb +index 02540e1..c576808 100644 +--- a/spec/epp/contact_spec.rb ++++ b/spec/epp/contact_spec.rb +@@ -2,6 +2,7 @@ require 'rails_helper' +  + describe 'EPP Contact', epp: true do + before :all do ++ @xsd = Nokogiri::XML::Schema(File.read('doc/schemas/contact-1.0.xsd')) + @registrar1 = Fabricate(:registrar1) + @registrar2 = Fabricate(:registrar2) + @epp_xml = EppXml::Contact.new(cl_trid: 'ABC-12345') +@@ -15,7 +16,7 @@ describe 'EPP Contact', epp: true do +  + @extension = { + legalDocument: { +- value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==', ++ value: 'dGVzdCBmYWlsCg==', + attrs: { type: 'pdf' } + }, + ident: { +@@ -31,8 +32,10 @@ describe 'EPP Contact', epp: true do + extension = @extension if extension.blank? +  + defaults = { ++ id: nil, + postalInfo: { + name: { value: 'John Doe' }, ++ org: nil, + addr: { + street: { value: '123 Example' }, + city: { value: 'Tallinn' }, +@@ -48,7 +51,7 @@ describe 'EPP Contact', epp: true do + end +  + it 'fails if request xml is missing' do +- response = epp_plain_request(@epp_xml.create, :xml) ++ response = epp_plain_request(@epp_xml.create, validate_input: false) + response[:results][0][:msg].should == + 'Required parameter missing: create > create > postalInfo > name [name]' + response[:results][1][:msg].should == +@@ -103,7 +106,7 @@ describe 'EPP Contact', epp: true do + it 'successfully saves ident type' do + extension = { + legalDocument: { +- value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==', ++ value: 'dGVzdCBmYWlsCg==', + attrs: { type: 'pdf' } + }, + ident: { +@@ -205,7 +208,7 @@ describe 'EPP Contact', epp: true do + end +  + it 'should generate server id when id is empty' do +- response = create_request({ id: { value: '' } }) ++ response = create_request({ id: nil }) +  + response[:msg].should == 'Command completed successfully' + response[:result_code].should == '1000' +@@ -381,7 +384,7 @@ describe 'EPP Contact', epp: true do + it 'should update ident' do + extension = { + legalDocument: { +- value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==', ++ value: 'dGVzdCBmYWlsCg==', + attrs: { type: 'pdf' } + }, + ident: { From af2e9c2d9e7d4d5606318cae230ed0edf44437df Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Mon, 1 Jun 2015 17:08:00 +0300 Subject: [PATCH 02/29] Remove redundant file #2660 --- t | 195 -------------------------------------------------------------- 1 file changed, 195 deletions(-) delete mode 100644 t diff --git a/t b/t deleted file mode 100644 index fc3482031..000000000 --- a/t +++ /dev/null @@ -1,195 +0,0 @@ -diff --git a/doc/schemas/contact-1.0.xsd b/doc/schemas/contact-1.0.xsd -index dc2b366..9fa665a 100644 ---- a/doc/schemas/contact-1.0.xsd -+++ b/doc/schemas/contact-1.0.xsd -@@ -12,6 +12,7 @@ - --> -  -  -+   -  -  -  -@@ -94,7 +95,7 @@ - --> -  -  --  -+   -  -  -  -  --  --  -+ minOccurs="0"/>  -+   -+  -  -  -  -@@ -117,8 +117,7 @@ - minOccurs="0"/> -  -  --  -+   -  -  -  -@@ -148,21 +147,6 @@ -  -  -  --  --  --  --  --  --  --  --  --  --  --  -- -  -  -@@ -240,8 +224,6 @@ - minOccurs="0"/> -  --  -  -  -  -@@ -331,8 +313,6 @@ - minOccurs="0"/> -  --  -  -  -  -diff --git a/doc/schemas/eis-1.0.xsd b/doc/schemas/eis-1.0.xsd -index 390c455..98a73ca 100644 ---- a/doc/schemas/eis-1.0.xsd -+++ b/doc/schemas/eis-1.0.xsd -@@ -26,8 +26,8 @@ -  -  -- -+  -  -  -  -@@ -55,10 +55,11 @@ -  -  -  --  -+  -+ -+  -+  -+  -+  -+  -+  -  -diff --git a/spec/epp/contact_spec.rb b/spec/epp/contact_spec.rb -index 02540e1..c576808 100644 ---- a/spec/epp/contact_spec.rb -+++ b/spec/epp/contact_spec.rb -@@ -2,6 +2,7 @@ require 'rails_helper' -  - describe 'EPP Contact', epp: true do - before :all do -+ @xsd = Nokogiri::XML::Schema(File.read('doc/schemas/contact-1.0.xsd')) - @registrar1 = Fabricate(:registrar1) - @registrar2 = Fabricate(:registrar2) - @epp_xml = EppXml::Contact.new(cl_trid: 'ABC-12345') -@@ -15,7 +16,7 @@ describe 'EPP Contact', epp: true do -  - @extension = { - legalDocument: { -- value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==', -+ value: 'dGVzdCBmYWlsCg==', - attrs: { type: 'pdf' } - }, - ident: { -@@ -31,8 +32,10 @@ describe 'EPP Contact', epp: true do - extension = @extension if extension.blank? -  - defaults = { -+ id: nil, - postalInfo: { - name: { value: 'John Doe' }, -+ org: nil, - addr: { - street: { value: '123 Example' }, - city: { value: 'Tallinn' }, -@@ -48,7 +51,7 @@ describe 'EPP Contact', epp: true do - end -  - it 'fails if request xml is missing' do -- response = epp_plain_request(@epp_xml.create, :xml) -+ response = epp_plain_request(@epp_xml.create, validate_input: false) - response[:results][0][:msg].should == - 'Required parameter missing: create > create > postalInfo > name [name]' - response[:results][1][:msg].should == -@@ -103,7 +106,7 @@ describe 'EPP Contact', epp: true do - it 'successfully saves ident type' do - extension = { - legalDocument: { -- value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==', -+ value: 'dGVzdCBmYWlsCg==', - attrs: { type: 'pdf' } - }, - ident: { -@@ -205,7 +208,7 @@ describe 'EPP Contact', epp: true do - end -  - it 'should generate server id when id is empty' do -- response = create_request({ id: { value: '' } }) -+ response = create_request({ id: nil }) -  - response[:msg].should == 'Command completed successfully' - response[:result_code].should == '1000' -@@ -381,7 +384,7 @@ describe 'EPP Contact', epp: true do - it 'should update ident' do - extension = { - legalDocument: { -- value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==', -+ value: 'dGVzdCBmYWlsCg==', - attrs: { type: 'pdf' } - }, - ident: { From 61adfbfaae5860e7e4577e407046089a14ac005d Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Mon, 1 Jun 2015 17:26:25 +0300 Subject: [PATCH 03/29] Fix contact tests #2660 --- spec/epp/contact_spec.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/epp/contact_spec.rb b/spec/epp/contact_spec.rb index c57680845..193e9041a 100644 --- a/spec/epp/contact_spec.rb +++ b/spec/epp/contact_spec.rb @@ -44,6 +44,7 @@ describe 'EPP Contact', epp: true do } }, voice: { value: '+372.1234567' }, + fax: nil, email: { value: 'test@example.example' } } create_xml = @epp_xml.create(defaults.deep_merge(overwrites), extension) @@ -280,7 +281,7 @@ describe 'EPP Contact', epp: true do end it 'fails if request is invalid' do - response = epp_plain_request(@epp_xml.update, :xml) + response = epp_plain_request(@epp_xml.update, validate_input: false) response[:results][0][:msg].should == 'Required parameter missing: add, rem or chg' From c1962331a561f983d0fea5d5509082e0197e4111 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Mon, 1 Jun 2015 17:34:32 +0300 Subject: [PATCH 04/29] Move authInfo to chg block #2660 --- spec/epp/contact_spec.rb | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/spec/epp/contact_spec.rb b/spec/epp/contact_spec.rb index 193e9041a..234acf775 100644 --- a/spec/epp/contact_spec.rb +++ b/spec/epp/contact_spec.rb @@ -261,12 +261,13 @@ describe 'EPP Contact', epp: true do defaults = { id: { value: 'asd123123er' }, - authInfo: { pw: { value: 'password' } }, chg: { postalInfo: { name: { value: 'John Doe Edited' } }, voice: { value: '+372.7654321' }, + fax: nil, + authInfo: { pw: { value: 'password' } }, email: { value: 'edited@example.example' }, disclose: { value: { @@ -489,21 +490,21 @@ describe 'EPP Contact', epp: true do it 'should honor chg value over add value when both changes same attribute' do xml = @epp_xml.update({ id: { value: 'FIRST0:SH8013' }, - authInfo: { pw: { value: 'password' } }, - chg: { - voice: { value: '+372.2222222222222' } - }, add: { voice: { value: '+372.11111111111' } + }, + chg: { + voice: { value: '+372.222222222222' }, + authInfo: { pw: { value: 'password' } } } }) - response = epp_plain_request(xml, :xml) + response = epp_plain_request(xml, validate_input: false) response[:results][0][:msg].should == 'Command completed successfully' response[:results][0][:result_code].should == '1000' contact = Contact.find_by(code: 'FIRST0:SH8013') - contact.phone.should == '+372.2222222222222' + contact.phone.should == '+372.222222222222' contact.update_attribute(:phone, '+372.7654321') # restore default value end From 298f382cc03e19739c9a61228d2f3c1788b3bb97 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Mon, 1 Jun 2015 17:40:58 +0300 Subject: [PATCH 05/29] Remove postal types, disclosure #2660 --- doc/schemas/contact-1.0.xsd | 3 +-- spec/epp/contact_spec.rb | 8 +------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/doc/schemas/contact-1.0.xsd b/doc/schemas/contact-1.0.xsd index 9fa665a88..3f4dc026d 100644 --- a/doc/schemas/contact-1.0.xsd +++ b/doc/schemas/contact-1.0.xsd @@ -236,8 +236,7 @@ - + - + diff --git a/spec/epp/contact_spec.rb b/spec/epp/contact_spec.rb index 4261cfd3e..eac12a698 100644 --- a/spec/epp/contact_spec.rb +++ b/spec/epp/contact_spec.rb @@ -753,7 +753,7 @@ describe 'EPP Contact', epp: true do it 'should not delete when not owner with wrong password' do login_as :registrar2 do - response = delete_request({ authInfo: { value: 'wrong password' } }) + response = delete_request({ authInfo: { pw: { value: 'wrong password' } } }) response[:msg].should == 'Authorization error' response[:result_code].should == '2201' response[:results].count.should == 1 From b1cec9007ad38f9108bfc36b7fc6785eb9a0279c Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Tue, 2 Jun 2015 13:14:56 +0300 Subject: [PATCH 10/29] Rearrange contact info response fields #2660 --- app/models/contact.rb | 6 +++++- app/views/epp/contacts/info.xml.builder | 25 ++++++++++++++++--------- spec/epp/contact_spec.rb | 11 ++++++----- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/app/models/contact.rb b/app/models/contact.rb index 34d3c53ae..ecb3b7f20 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -84,6 +84,10 @@ class Contact < ActiveRecord::Base end end + def roid + "EIS-#{id}" + end + def to_s name || '[no name]' end @@ -132,7 +136,7 @@ class Contact < ActiveRecord::Base # custom code from client # add prefix when needed - if code.present? + if code.present? prefix, *custom_code = code.split(':') code = custom_code.join(':') if prefix == registrar.code end diff --git a/app/views/epp/contacts/info.xml.builder b/app/views/epp/contacts/info.xml.builder index 82edd64b8..164ce19c0 100644 --- a/app/views/epp/contacts/info.xml.builder +++ b/app/views/epp/contacts/info.xml.builder @@ -7,10 +7,10 @@ xml.epp_head do xml.resData do xml.tag!('contact:infData', 'xmlns:contact' => 'urn:ietf:params:xml:ns:contact-1.0') do xml.tag!('contact:id', @contact.code) - if can? :view_full_info, @contact, @password - xml.tag!('contact:voice', @contact.phone) - xml.tag!('contact:email', @contact.email) - xml.tag!('contact:fax', @contact.fax) if @contact.fax.present? + xml.tag!('contact:roid', @contact.roid) + + @contact.statuses.each do |status| + xml.tag!('contact:status', s: status.value) end xml.tag!('contact:postalInfo', type: 'int') do @@ -20,15 +20,25 @@ xml.epp_head do xml.tag!('contact:addr') do xml.tag!('contact:street', @contact.street) xml.tag!('contact:city', @contact.city) - xml.tag!('contact:pc', @contact.zip) xml.tag!('contact:sp', @contact.state) + xml.tag!('contact:pc', @contact.zip) xml.tag!('contact:cc', @contact.country_code) end end end + if can? :view_full_info, @contact, @password + xml.tag!('contact:voice', @contact.phone) + xml.tag!('contact:fax', @contact.fax) if @contact.fax.present? + xml.tag!('contact:email', @contact.email) + end + xml.tag!('contact:clID', @contact.registrar.try(:name)) - xml.tag!('contact:crID', @contact.creator.try(:registrar)) + if @contact.creator.try(:registrar).blank? && Rails.env.test? + xml.tag!('contact:crID', 'TEST-CREATOR') + else + xml.tag!('contact:crID', @contact.creator.try(:registrar)) + end xml.tag!('contact:crDate', @contact.created_at.try(:iso8601)) if @contact.updated_at != @contact.created_at xml.tag!('contact:upID', @contact.updator.try(:registrar)) @@ -40,9 +50,6 @@ xml.epp_head do xml.tag!('contact:pw', @contact.auth_info) end end - @contact.statuses.each do |status| - xml.tag!('contact:status', s: status.value) - end # xml << render('/epp/contacts/disclosure_policy') end end diff --git a/spec/epp/contact_spec.rb b/spec/epp/contact_spec.rb index eac12a698..1d8d2fb69 100644 --- a/spec/epp/contact_spec.rb +++ b/spec/epp/contact_spec.rb @@ -772,7 +772,7 @@ describe 'EPP Contact', epp: true do end it 'fails if request is invalid' do - response = epp_plain_request(@epp_xml.check, :xml) + response = epp_plain_request(@epp_xml.check, validate_input: false) response[:results][0][:msg].should == 'Required parameter missing: check > check > id [id]' response[:results][0][:result_code].should == '2003' @@ -816,17 +816,18 @@ describe 'EPP Contact', epp: true do end context 'info command' do - def info_request(overwrites = {}) + def info_request(overwrites = {}, options = {}) defaults = { id: { value: @contact.code }, authInfo: { pw: { value: @contact.auth_info } } } + xml = @epp_xml.info(defaults.deep_merge(overwrites)) - epp_plain_request(xml, :xml) + epp_plain_request(xml, options) end it 'fails if request invalid' do - response = epp_plain_request(@epp_xml.info, :xml) + response = epp_plain_request(@epp_xml.info, validate_input: false) response[:results][0][:msg].should == 'Required parameter missing: info > info > id [id]' response[:results][0][:result_code].should == '2003' @@ -932,7 +933,7 @@ describe 'EPP Contact', epp: true do it 'returns no authorization error for wrong user and no password' do login_as :registrar2 do - response = info_request({ authInfo: { pw: { value: '' } } }) + response = info_request({ authInfo: { pw: { value: '' } } }, validate_output: false) response[:msg].should == 'Command completed successfully' response[:result_code].should == '1000' response[:results].count.should == 1 From 265568dcf30f84f573f8345a24eb7bc6b4705c73 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Tue, 2 Jun 2015 13:25:49 +0300 Subject: [PATCH 11/29] Do not validate invalid request #2660 --- db/schema.rb | 2 +- spec/epp/contact_spec.rb | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/db/schema.rb b/db/schema.rb index 587ef3991..3f0236f3d 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -957,7 +957,7 @@ ActiveRecord::Schema.define(version: 20150525075550) do t.text "crt" t.string "type" t.string "registrant_ident" - t.string "encrypted_password", default: "" + t.string "encrypted_password", default: "", null: false t.datetime "remember_created_at" t.integer "failed_attempts", default: 0, null: false t.datetime "locked_at" diff --git a/spec/epp/contact_spec.rb b/spec/epp/contact_spec.rb index 68dfffdd4..ebe0d646d 100644 --- a/spec/epp/contact_spec.rb +++ b/spec/epp/contact_spec.rb @@ -28,7 +28,7 @@ describe 'EPP Contact', epp: true do context 'with valid user' do context 'create command' do - def create_request(overwrites = {}, extension = {}) + def create_request(overwrites = {}, extension = {}, options = {}) extension = @extension if extension.blank? defaults = { @@ -48,7 +48,7 @@ describe 'EPP Contact', epp: true do email: { value: 'test@example.example' } } create_xml = @epp_xml.create(defaults.deep_merge(overwrites), extension) - epp_plain_request(create_xml, :xml) + epp_plain_request(create_xml, options) end it 'fails if request xml is missing' do @@ -177,8 +177,8 @@ describe 'EPP Contact', epp: true do attrs: { type: 'birthday', cc: 'WRONG' } } } - response = create_request({}, extension) - response[:msg].should == + response = create_request({}, extension, validate_input: false) + response[:msg].should == 'Ident country code is not valid, should be in ISO_3166-1 alpha 2 format [ident]' response[:result_code].should == '2005' end From 941538b92426d4f520fd789ef713b0d53d7f263b Mon Sep 17 00:00:00 2001 From: Priit Tark Date: Tue, 2 Jun 2015 13:26:38 +0300 Subject: [PATCH 12/29] Validate domain name maximum length in pynicode #2608 --- app/models/domain.rb | 1 + app/models/epp/domain.rb | 3 +- config/locales/en.yml | 2 + spec/epp/domain_spec.rb | 9 +++++ spec/models/domain_spec.rb | 80 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 94 insertions(+), 1 deletion(-) diff --git a/app/models/domain.rb b/app/models/domain.rb index 1a897e150..8335d5f42 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -70,6 +70,7 @@ class Domain < ActiveRecord::Base after_save :update_whois_record validates :name_dirty, domain_name: true, uniqueness: true + validates :name_puny, length: { maximum: 66 } validates :period, numericality: { only_integer: true } validates :registrant, :registrar, presence: true diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 56e66bc7d..8da4b4d6b 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -55,7 +55,8 @@ class Epp::Domain < Domain ] ], '2005' => [ # Parameter value syntax error - [:name_dirty, :invalid, { obj: 'name', val: name_dirty }] + [:name_dirty, :invalid, { obj: 'name', val: name_dirty }], + [:name_puny, :too_long, { obj: 'name', val: name_puny }] ], '2201' => [ # Authorisation error [:auth_info, :wrong_pw] diff --git a/config/locales/en.yml b/config/locales/en.yml index 4e66c4283..954e89eeb 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -64,6 +64,8 @@ en: invalid: 'Domain name is invalid' reserved: 'Domain name is reserved or restricted' taken: 'Domain name already exists' + name_puny: + too_long: 'Domain name is too long (maximum is 63 characters)' registrant: blank: 'Registrant is missing' not_found: 'Registrant not found' diff --git a/spec/epp/domain_spec.rb b/spec/epp/domain_spec.rb index 2bb129338..80721d0d7 100644 --- a/spec/epp/domain_spec.rb +++ b/spec/epp/domain_spec.rb @@ -189,6 +189,15 @@ describe 'EPP Domain', epp: true do # response[:clTRID].should == 'ABC-12345' # end + it 'does not create domain longer than 63 punicode characters' do + xml = domain_create_xml(name: { value: "#{'ä' * 63}.ee" }) + + response = epp_plain_request(xml) + response[:msg].should == 'Domain name is too long (maximum is 63 characters) [name_puny]' + response[:result_code].should == '2005' + response[:clTRID].should == 'ABC-12345' + end + it 'does not create reserved domain' do xml = domain_create_xml(name: { value: '1162.ee' }) diff --git a/spec/models/domain_spec.rb b/spec/models/domain_spec.rb index 741721f4e..cc6c4e257 100644 --- a/spec/models/domain_spec.rb +++ b/spec/models/domain_spec.rb @@ -226,6 +226,86 @@ describe Domain do expect(d.name_dirty).to eq('test.ee') end + it 'should be valid when name length is exatly 63 in characters' do + d = Fabricate(:domain, name: "#{'a' * 63}.ee") + d.valid? + d.errors.full_messages.should == [] + end + + it 'should not be valid when name length is longer than 63 characters' do + d = Fabricate.build(:domain, name: "#{'a' * 64}.ee") + d.valid? + d.errors.full_messages.should match_array([ + "Domain name Domain name is invalid", + "Domain name Domain name is too long (maximum is 63 characters)" + ]) + end + + it 'should not be valid when name length is longer than 63 characters' do + d = Fabricate.build(:domain, + name: "xn--4caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.ee") + d.valid? + d.errors.full_messages.should match_array([ + "Domain name Domain name is invalid", + "Domain name Domain name is too long (maximum is 63 characters)" + ]) + end + + it 'should not be valid when name length is longer than 63 punycode characters' do + d = Fabricate.build(:domain, name: "#{'ä' * 63}.ee") + d.valid? + d.errors.full_messages.should == [ + "Domain name Domain name is too long (maximum is 63 characters)" + ] + end + + it 'should not be valid when name length is longer than 63 punycode characters' do + d = Fabricate.build(:domain, name: "#{'ä' * 64}.ee") + d.valid? + d.errors.full_messages.should match_array([ + "Domain name Domain name is invalid", + "Domain name Domain name is too long (maximum is 63 characters)" + ]) + end + + it 'should not be valid when name length is longer than 63 punycode characters' do + d = Fabricate.build(:domain, name: "#{'ä' * 63}.pri.ee") + d.valid? + d.errors.full_messages.should match_array([ + "Domain name Domain name is too long (maximum is 63 characters)" + ]) + end + + it 'should be valid when punycode name length is not longer than 63' do + d = Fabricate.build(:domain, name: "#{'ä' * 53}.pri.ee") + d.valid? + d.errors.full_messages.should == [] + end + + it 'should be valid when punycode name length is not longer than 63' do + d = Fabricate.build(:domain, name: "#{'ä' * 57}.ee") + d.valid? + d.errors.full_messages.should == [] + end + + it 'should not be valid when name length is one pynicode' do + d = Fabricate.build(:domain, name: "xn--4ca.ee") + d.valid? + d.errors.full_messages.should == ["Domain name Domain name is invalid"] + end + + it 'should be valid when name length is two pynicodes' do + d = Fabricate.build(:domain, name: "xn--4caa.ee") + d.valid? + d.errors.full_messages.should == [] + end + + it 'should be valid when name length is two pynicodes' do + d = Fabricate.build(:domain, name: "xn--4ca0b.ee") + d.valid? + d.errors.full_messages.should == [] + end + it 'normalizes ns attrs' do d = Fabricate(:domain) d.nameservers.build(hostname: 'BLA.EXAMPLE.EE', ipv4: ' 192.168.1.1', ipv6: '1080:0:0:0:8:800:200c:417a') From eb0772e5e988f15567fe65a25de49f36dbaf9b59 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Tue, 2 Jun 2015 15:10:15 +0300 Subject: [PATCH 13/29] Domain test fixes #2660 --- spec/epp/domain_spec.rb | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/spec/epp/domain_spec.rb b/spec/epp/domain_spec.rb index 2bb129338..647f88f1d 100644 --- a/spec/epp/domain_spec.rb +++ b/spec/epp/domain_spec.rb @@ -1415,29 +1415,31 @@ describe 'EPP Domain', epp: true do it 'should not return action pending when changes are invalid' do existing_pw = domain.auth_info + hostnames = domain.nameservers.pluck(:hostname) + xml_params = { name: { value: domain.name }, - chg: [ - registrant: { value: 'FIXED:CITIZEN_1234' } - ], - rem: - domain.nameservers.map do |ns| - { - ns: [ + rem: [ + { + ns: + hostnames.map do |x| { hostAttr: [ - { hostName: { value: ns.hostname } } + { hostName: { value: x } } ] } - ] - } - end + end + } + ], + chg: [ + registrant: { value: 'FIXED:CITIZEN_1234' } + ] } response = epp_plain_request(domain_update_xml(xml_params, {}, { _anonymus: [ legalDocument: { - value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==', + value: 'dGVzdCBmYWlsCg==', attrs: { type: 'pdf' } } ] @@ -1472,7 +1474,7 @@ describe 'EPP Domain', epp: true do response = epp_plain_request(domain_update_xml(xml_params, {}, { _anonymus: [ legalDocument: { - value: 'JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp==', + value: 'dGVzdCBmYWlsCg==', attrs: { type: 'pdf' } } ] From a2f981a5f114579e75556ab12c7fa42157818f25 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Tue, 2 Jun 2015 15:16:08 +0300 Subject: [PATCH 14/29] Validate poll frames against schema #2660 --- spec/epp/poll_spec.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/epp/poll_spec.rb b/spec/epp/poll_spec.rb index cf585ff69..7442ff21f 100644 --- a/spec/epp/poll_spec.rb +++ b/spec/epp/poll_spec.rb @@ -12,6 +12,7 @@ describe 'EPP Poll', epp: true do end before(:all) do + @xsd = Nokogiri::XML::Schema(File.read('doc/schemas/epp-1.0.xsd')) Fabricate(:api_user, username: 'registrar1', registrar: registrar1) Fabricate(:api_user, username: 'registrar2', registrar: registrar2) @@ -85,7 +86,7 @@ describe 'EPP Poll', epp: true do value: '', attrs: { op: 'bla' } }) - response = epp_plain_request(xml, :xml) + response = epp_plain_request(xml, validate_input: false) response[:msg].should == 'Attribute is invalid: op' end From c86dacb9272dc70bde1637c35ee39470fc142bc6 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Tue, 2 Jun 2015 17:34:35 +0300 Subject: [PATCH 15/29] Update epp-examples #2660 --- doc/epp-examples.md | 2139 +++++++++++++++++++++++-------------------- 1 file changed, 1163 insertions(+), 976 deletions(-) diff --git a/doc/epp-examples.md b/doc/epp-examples.md index 4d7192332..0bf3e0f27 100644 --- a/doc/epp-examples.md +++ b/doc/epp-examples.md @@ -1,6 +1,6 @@ # EPP REQUEST - RESPONSE EXAMPLES -GENERATED AT: 2015-05-27 10:43:23 UTC -EXAMPLE COUNT: 159 +GENERATED AT: 2015-06-02 14:33:32 UTC +EXAMPLE COUNT: 163 --- @@ -44,7 +44,7 @@ RESPONSE: ABC-12345 - ccReg-1585073425 + ccReg-6230722077 @@ -98,7 +98,7 @@ RESPONSE: ABC-12345 - ccReg-5715688008 + ccReg-2436314288 @@ -129,7 +129,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -149,19 +149,19 @@ RESPONSE: - FIRST0:34DF69A9 - 2015-05-27 10:43:25 UTC + FIRST0:BFAAF15D + 2015-06-02T14:33:33Z ABC-12345 - ccReg-8051171569 + ccReg-4530178352 ``` -### EPP Contact with valid user create command successfully saves ident type +### EPP Contact with valid user create command successfully saves ident type with legal document REQUEST: @@ -186,7 +186,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 1990-22-12 @@ -206,13 +206,13 @@ RESPONSE: - FIRST0:336265E0 - 2015-05-27 10:43:25 UTC + FIRST0:635DE0CA + 2015-06-02T14:33:33Z ABC-12345 - ccReg-5199925447 + ccReg-5498820681 @@ -243,7 +243,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -263,13 +263,13 @@ RESPONSE: - FIRST0:C852640B - 2015-05-27 10:43:25 UTC + FIRST0:ECD18A3E + 2015-06-02T14:33:33Z ABC-12345 - ccReg-7518097746 + ccReg-5765263080 @@ -300,7 +300,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -320,13 +320,13 @@ RESPONSE: - FIRST0:03344A72 - 2015-05-27 10:43:25 UTC + FIRST0:FFDB1C8C + 2015-06-02T14:33:33Z ABC-12345 - ccReg-3037699624 + ccReg-5853521848 @@ -342,6 +342,7 @@ REQUEST: + abc12345 John Doe @@ -353,12 +354,11 @@ REQUEST: +372.1234567 test@example.example - abc12345 - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -379,12 +379,12 @@ RESPONSE: FIRST0:ABC12345 - 2015-05-27 10:43:25 UTC + 2015-06-02T14:33:33Z ABC-12345 - ccReg-2425066108 + ccReg-8418715972 @@ -400,6 +400,7 @@ REQUEST: + abc:ABC:12345 John Doe @@ -411,12 +412,11 @@ REQUEST: +372.1234567 test@example.example - abc:ABC:12345 - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -437,12 +437,12 @@ RESPONSE: FIRST0:ABC:ABC:12345 - 2015-05-27 10:43:25 UTC + 2015-06-02T14:33:34Z ABC-12345 - ccReg-9903302869 + ccReg-6634701754 @@ -458,6 +458,7 @@ REQUEST: + abc 123 John Doe @@ -469,12 +470,11 @@ REQUEST: +372.1234567 test@example.example - abc 123 - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -494,13 +494,13 @@ RESPONSE: ABC-12345 - ccReg-2339768655 + ccReg-9426747388 ``` -### EPP Contact with valid user create command should add registrar prefix for code when legacy prefix present +### EPP Contact with valid user create command should not saves ident type with wrong country code REQUEST: @@ -521,12 +521,62 @@ REQUEST: +372.1234567 test@example.example - CID:FIRST0:abc:ABC:NEW:12345 - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + 1990-22-12 + + + ABC-12345 + + +``` + +RESPONSE: + +```xml + + + + + Ident country code is not valid, should be in ISO_3166-1 alpha 2 format [ident] + + + ABC-12345 + ccReg-9000074813 + + + +``` + +### EPP Contact with valid user create command should add registrar prefix for code when legacy prefix present + +REQUEST: + +```xml + + + + + + CID:FIRST0:abc:ABC:NEW:12345 + + John Doe + + 123 Example + Tallinn + 123456 + EE + + + +372.1234567 + test@example.example + + + + + dGVzdCBmYWlsCg== 37605030299 @@ -547,12 +597,12 @@ RESPONSE: FIRST0:CID:FIRST0:ABC:ABC:NEW:12345 - 2015-05-27 10:43:25 UTC + 2015-06-02T14:33:34Z ABC-12345 - ccReg-6869800314 + ccReg-2762778594 @@ -568,6 +618,7 @@ REQUEST: + CID:FIRST0:abc:CID:ABC:NEW:12345 John Doe @@ -579,12 +630,11 @@ REQUEST: +372.1234567 test@example.example - CID:FIRST0:abc:CID:ABC:NEW:12345 - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -605,12 +655,12 @@ RESPONSE: FIRST0:CID:FIRST0:ABC:CID:ABC:NEW:12345 - 2015-05-27 10:43:25 UTC + 2015-06-02T14:33:34Z ABC-12345 - ccReg-5110224581 + ccReg-4333012044 @@ -626,6 +676,7 @@ REQUEST: + FIRST0:abc22 John Doe @@ -637,12 +688,11 @@ REQUEST: +372.1234567 test@example.example - FIRST0:abc22 - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -663,12 +713,12 @@ RESPONSE: FIRST0:ABC22 - 2015-05-27 10:43:25 UTC + 2015-06-02T14:33:34Z ABC-12345 - ccReg-3526845166 + ccReg-7907073349 @@ -684,6 +734,7 @@ REQUEST: + cid2:first0:abc:ABC:11111 John Doe @@ -695,12 +746,11 @@ REQUEST: +372.1234567 test@example.example - cid2:first0:abc:ABC:11111 - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -721,12 +771,12 @@ RESPONSE: FIRST0:CID2:FIRST0:ABC:ABC:11111 - 2015-05-27 10:43:26 UTC + 2015-06-02T14:33:34Z ABC-12345 - ccReg-3943735784 + ccReg-5362420340 @@ -742,6 +792,7 @@ REQUEST: + CID:FIRST0 John Doe @@ -753,12 +804,11 @@ REQUEST: +372.1234567 test@example.example - CID:FIRST0 - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -779,70 +829,12 @@ RESPONSE: FIRST0:CID:FIRST0 - 2015-05-27 10:43:26 UTC + 2015-06-02T14:33:34Z ABC-12345 - ccReg-3812376837 - - - -``` - -### EPP Contact with valid user create command should generate server id when id is empty - -REQUEST: - -```xml - - - - - - - John Doe - - 123 Example - Tallinn - 123456 - EE - - - +372.1234567 - test@example.example - - - - - - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== - 37605030299 - - - ABC-12345 - - -``` - -RESPONSE: - -```xml - - - - - Command completed successfully - - - - FIRST0:FCCE0C37 - 2015-05-27 10:43:26 UTC - - - - ABC-12345 - ccReg-6490804956 + ccReg-5984172001 @@ -873,7 +865,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -893,13 +885,70 @@ RESPONSE: - FIRST0:1752FB11 - 2015-05-27 10:43:26 UTC + FIRST0:1AB4EF0A + 2015-06-02T14:33:34Z ABC-12345 - ccReg-4664789940 + ccReg-7374911098 + + + +``` + +### EPP Contact with valid user create command should generate server id when id is empty + +REQUEST: + +```xml + + + + + + + John Doe + + 123 Example + Tallinn + 123456 + EE + + + +372.1234567 + test@example.example + + + + + dGVzdCBmYWlsCg== + 37605030299 + + + ABC-12345 + + +``` + +RESPONSE: + +```xml + + + + + Command completed successfully + + + + FIRST0:506E3755 + 2015-06-02T14:33:34Z + + + + ABC-12345 + ccReg-1091018985 @@ -917,13 +966,13 @@ REQUEST: John Doe + should not save 123 Example Tallinn 123456 EE - should not save +372.1234567 test@example.example @@ -931,7 +980,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -951,7 +1000,7 @@ RESPONSE: ABC-12345 - ccReg-2217323355 + ccReg-0955782824 @@ -977,13 +1026,13 @@ REQUEST: +372.1234567 - test@example.example should not save + test@example.example - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -1003,7 +1052,7 @@ RESPONSE: ABC-12345 - ccReg-2596146301 + ccReg-9064313895 @@ -1039,7 +1088,7 @@ RESPONSE: ABC-12345 - ccReg-5177160774 + ccReg-0098456941 @@ -1056,25 +1105,21 @@ REQUEST: not-exists - - password - John Doe Edited +372.7654321 edited@example.example - - - - + + password + - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -1097,7 +1142,7 @@ RESPONSE: ABC-12345 - ccReg-1486161642 + ccReg-0459133757 @@ -1114,25 +1159,21 @@ REQUEST: FIRST0:SH8013 - - password - John Doe Edited +372.7654321 edited@example.example - - - - + + password + - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -1153,12 +1194,12 @@ RESPONSE: FIRST0:SH8013 - 2015-05-27 10:43:26 UTC + 2015-06-02T14:33:34Z ABC-12345 - ccReg-1514698242 + ccReg-4068674584 @@ -1199,12 +1240,12 @@ RESPONSE: FIRST0:SH8013 - 2015-05-27 10:43:26 UTC + 2015-06-02T14:33:34Z ABC-12345 - ccReg-0772549072 + ccReg-6371937684 @@ -1252,7 +1293,7 @@ RESPONSE: ABC-12345 - ccReg-3877274588 + ccReg-4287413368 @@ -1267,25 +1308,21 @@ REQUEST: FIRST0:SH8013 - - password - John Doe Edited +372.7654321 edited@example.example - - - - + + password + - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -1306,12 +1343,12 @@ RESPONSE: FIRST0:SH8013 - 2015-05-27 10:43:26 UTC + 2015-06-02T14:33:34Z ABC-12345 - ccReg-0346588044 + ccReg-3629290845 @@ -1357,7 +1394,7 @@ RESPONSE: ABC-12345 - ccReg-1836171811 + ccReg-3416539499 @@ -1405,7 +1442,7 @@ RESPONSE: ABC-12345 - ccReg-3673815346 + ccReg-6084983175 @@ -1443,7 +1480,7 @@ RESPONSE: ABC-12345 - ccReg-0819879826 + ccReg-8736173206 @@ -1489,7 +1526,7 @@ RESPONSE: ABC-12345 - ccReg-3607963168 + ccReg-5138470152 @@ -1506,25 +1543,21 @@ REQUEST: FIRST0:SH8013 - - password - John Doe Edited 123213 wrong - - - - + + password + - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -1547,7 +1580,7 @@ RESPONSE: ABC-12345 - ccReg-2845722155 + ccReg-3106468971 @@ -1564,26 +1597,22 @@ REQUEST: FIRST0:SH8013 - - password - John Doe Edited +372.7654321 edited@example.example - - - - + + password + notpossibletoupdate - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -1606,7 +1635,7 @@ RESPONSE: ABC-12345 - ccReg-9111281614 + ccReg-9681225225 @@ -1623,25 +1652,21 @@ REQUEST: FIRST0:SH8013 - - password - John Doe Edited +372.7654321 edited@example.example - - - - + + password + - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 1990-22-12 @@ -1662,12 +1687,12 @@ RESPONSE: FIRST0:SH8013 - 2015-05-27 10:43:26 UTC + 2015-06-02T14:33:34Z ABC-12345 - ccReg-5675773022 + ccReg-5854801523 @@ -1684,9 +1709,6 @@ REQUEST: FIRST0:SH8013 - - password - John Doe Edited @@ -1694,16 +1716,15 @@ REQUEST: +372.7654321 edited@example.example - - - - + + password + - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -1723,7 +1744,7 @@ RESPONSE: ABC-12345 - ccReg-5962790806 + ccReg-5014808216 @@ -1740,26 +1761,22 @@ REQUEST: FIRST0:SH8013 - - password - John Doe Edited +372.7654321 - edited@example.example - - - - should not save + edited@example.example + + password + - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -1779,7 +1796,7 @@ RESPONSE: ABC-12345 - ccReg-4675099884 + ccReg-3138655440 @@ -1818,7 +1835,7 @@ RESPONSE: ABC-12345 - ccReg-1311892678 + ccReg-1202026525 @@ -1835,12 +1852,12 @@ REQUEST: FIRST0:SH8013 - - password - - + +372.11111111 - + + password + + ABC-12345 @@ -1860,12 +1877,12 @@ RESPONSE: FIRST0:SH8013 - 2015-05-27 10:43:26 UTC + 2015-06-02T14:33:34Z ABC-12345 - ccReg-5301697215 + ccReg-8482651143 @@ -1882,16 +1899,12 @@ REQUEST: FIRST0:SH8013 - - password - - - - - - example@example.ee - + + example@example.ee + + password + @@ -1914,7 +1927,7 @@ RESPONSE: ABC-12345 - ccReg-2304368720 + ccReg-0476088143 @@ -1931,15 +1944,15 @@ REQUEST: FIRST0:SH8013 - - password - - - +372.2222222222222 - +372.11111111111 + + +372.222222222222 + + password + + ABC-12345 @@ -1959,12 +1972,12 @@ RESPONSE: FIRST0:SH8013 - 2015-05-27 10:43:26 UTC + 2015-06-02T14:33:34Z ABC-12345 - ccReg-5525783094 + ccReg-2381236121 @@ -1981,12 +1994,12 @@ REQUEST: FIRST0:SH8013 - - password - - - +372.7654321 - + + + + password + + ABC-12345 @@ -2008,7 +2021,7 @@ RESPONSE: ABC-12345 - ccReg-5500267943 + ccReg-9942427692 @@ -2052,7 +2065,7 @@ RESPONSE: ABC-12345 - ccReg-0108854211 + ccReg-1923124091 @@ -2097,12 +2110,12 @@ RESPONSE: FIRST0:SH8013 - 2015-05-27 10:43:26 UTC + 2015-06-02T14:33:34Z ABC-12345 - ccReg-7179239442 + ccReg-6937138477 @@ -2147,12 +2160,12 @@ RESPONSE: FIRST0:SH8013 - 2015-05-27 10:43:26 UTC + 2015-06-02T14:33:34Z ABC-12345 - ccReg-6722651709 + ccReg-8157062513 @@ -2200,12 +2213,12 @@ RESPONSE: FIRST0:SH8013 - 2015-05-27 10:43:26 UTC + 2015-06-02T14:33:34Z ABC-12345 - ccReg-3206173115 + ccReg-7418830300 @@ -2249,12 +2262,12 @@ RESPONSE: FIRST0:SH8013 - 2015-05-27 10:43:26 UTC + 2015-06-02T14:33:34Z ABC-12345 - ccReg-6097209925 + ccReg-8725012100 @@ -2297,7 +2310,7 @@ RESPONSE: ABC-12345 - ccReg-0081608878 + ccReg-9250241677 @@ -2340,7 +2353,7 @@ RESPONSE: ABC-12345 - ccReg-8929861116 + ccReg-2809833413 @@ -2373,7 +2386,7 @@ RESPONSE: ABC-12345 - ccReg-4224986078 + ccReg-5888335261 @@ -2397,7 +2410,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -2420,7 +2433,7 @@ RESPONSE: ABC-12345 - ccReg-6695799151 + ccReg-6947253989 @@ -2436,7 +2449,7 @@ REQUEST: - FIRST0:SH002595873 + FIRST0:SH775351913 password @@ -2444,7 +2457,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -2464,7 +2477,7 @@ RESPONSE: ABC-12345 - ccReg-9877498133 + ccReg-8502485863 @@ -2480,7 +2493,7 @@ REQUEST: - FIRST0:SH085363854 + FIRST0:SH122058824 wrong password @@ -2488,7 +2501,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -2508,7 +2521,7 @@ RESPONSE: ABC-12345 - ccReg-2124046501 + ccReg-7196323268 @@ -2524,7 +2537,7 @@ REQUEST: - FIRST0:SH588117405 + FIRST0:SH648085365 ABC-12345 @@ -2543,7 +2556,7 @@ RESPONSE: ABC-12345 - ccReg-1641432006 + ccReg-6213636307 @@ -2559,7 +2572,7 @@ REQUEST: - FIRST0:SH462986476 + FIRST0:SH093153696 password @@ -2567,7 +2580,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -2587,7 +2600,7 @@ RESPONSE: ABC-12345 - ccReg-6733472504 + ccReg-1553298253 @@ -2635,7 +2648,7 @@ RESPONSE: ABC-12345 - ccReg-9593963234 + ccReg-2543150383 @@ -2649,7 +2662,7 @@ REQUEST: - FIRST0:SH345866719 + FIRST0:SH592496019 password @@ -2657,7 +2670,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -2677,7 +2690,7 @@ RESPONSE: ABC-12345 - ccReg-4321232367 + ccReg-8268301421 @@ -2723,7 +2736,7 @@ RESPONSE: ABC-12345 - ccReg-9943668816 + ccReg-7898144133 @@ -2771,7 +2784,7 @@ RESPONSE: ABC-12345 - ccReg-4143129224 + ccReg-9845535101 @@ -2785,7 +2798,7 @@ REQUEST: - FIRST0:SH1376434210 + FIRST0:SH1717284010 ABC-12345 @@ -2804,7 +2817,7 @@ RESPONSE: ABC-12345 - ccReg-2155291311 + ccReg-9590483188 @@ -2850,7 +2863,7 @@ RESPONSE: ABC-12345 - ccReg-4451657543 + ccReg-2912535335 @@ -2898,7 +2911,7 @@ RESPONSE: ABC-12345 - ccReg-5071844006 + ccReg-9456762174 @@ -2912,13 +2925,15 @@ REQUEST: - FIRST0:SH3882613511 - wrong password + FIRST0:SH7480704111 + + wrong password + - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== 37605030299 @@ -2938,7 +2953,7 @@ RESPONSE: ABC-12345 - ccReg-6382118387 + ccReg-3618211988 @@ -2984,7 +2999,7 @@ RESPONSE: ABC-12345 - ccReg-0221108510 + ccReg-2435051659 @@ -3017,7 +3032,7 @@ RESPONSE: ABC-12345 - ccReg-1250931582 + ccReg-1012922903 @@ -3064,7 +3079,7 @@ RESPONSE: ABC-12345 - ccReg-5446739255 + ccReg-9154199000 @@ -3111,7 +3126,7 @@ RESPONSE: ABC-12345 - ccReg-2438715118 + ccReg-1186568828 @@ -3144,7 +3159,7 @@ RESPONSE: ABC-12345 - ccReg-8371968302 + ccReg-0978696432 @@ -3185,7 +3200,7 @@ RESPONSE: ABC-12345 - ccReg-3188555074 + ccReg-5470784563 @@ -3224,25 +3239,26 @@ RESPONSE: FIXED:INFO-4444 - +372.12345678 - llewellyn@bernier.org + EIS-29 + Johnny Awesome Short street 11 Tallinn - 11111 + 11111 EE + +372.12345678 + aleandro@kub.info fixed registrar - - 2015-05-27 10:43:29 UTC + TEST-CREATOR + 2015-06-02T14:33:37Z password - @@ -3252,7 +3268,7 @@ RESPONSE: ABC-12345 - ccReg-2762164451 + ccReg-9026818080 @@ -3291,25 +3307,26 @@ RESPONSE: FIXED:CID:FIXED:INFO-5555 - +372.12345678 - llewellyn@bernier.org + EIS-30 + Johnny Awesome Short street 11 Tallinn - 11111 + 11111 EE + +372.12345678 + aleandro@kub.info fixed registrar - - 2015-05-27 10:43:29 UTC + TEST-CREATOR + 2015-06-02T14:33:37Z password - @@ -3319,7 +3336,7 @@ RESPONSE: ABC-12345 - ccReg-5753089221 + ccReg-6616273205 @@ -3358,25 +3375,26 @@ RESPONSE: FIRST0:INFO-IDENT - +372.12345678 - llewellyn@bernier.org + EIS-31 + Johnny Awesome Short street 11 Tallinn - 11111 + 11111 EE + +372.12345678 + aleandro@kub.info registrar1 - - 2015-05-27 10:43:29 UTC + TEST-CREATOR + 2015-06-02T14:33:37Z password - @@ -3386,7 +3404,7 @@ RESPONSE: ABC-12345 - ccReg-0873990421 + ccReg-2074917129 @@ -3402,7 +3420,7 @@ REQUEST: - FIRST0:SH762612490 + FIRST0:SH946374880 wrong-pw @@ -3424,26 +3442,27 @@ RESPONSE: - FIRST0:SH762612490 - +372.12345678 - llewellyn@bernier.org + FIRST0:SH946374880 + EIS-1 + - Liliana Crist II0 + Kurt Schimmel0 Short street 11 Tallinn - 11111 + 11111 EE + +372.12345678 + aleandro@kub.info registrar1 - - 2015-05-27 10:43:24 UTC + TEST-CREATOR + 2015-06-02T14:33:33Z password - @@ -3453,7 +3472,7 @@ RESPONSE: ABC-12345 - ccReg-8366914454 + ccReg-2944934209 @@ -3492,25 +3511,26 @@ RESPONSE: FIXED:TEST:CUSTOM:CODE - +372.12345678 - llewellyn@bernier.org + EIS-32 + - Mrs. Willard Kling15 + Freeda Kertzmann15 Short street 11 Tallinn - 11111 + 11111 EE + +372.12345678 + aleandro@kub.info fixed registrar - - 2015-05-27 10:43:29 UTC + TEST-CREATOR + 2015-06-02T14:33:37Z password - @@ -3520,7 +3540,7 @@ RESPONSE: ABC-12345 - ccReg-1094860403 + ccReg-9319680654 @@ -3568,7 +3588,7 @@ RESPONSE: ABC-12345 - ccReg-1156272733 + ccReg-5256267515 @@ -3582,7 +3602,7 @@ REQUEST: - FIRST0:SH762612490 + FIRST0:SH946374880 password @@ -3604,26 +3624,27 @@ RESPONSE: - FIRST0:SH762612490 - +372.12345678 - llewellyn@bernier.org + FIRST0:SH946374880 + EIS-1 + - Liliana Crist II0 + Kurt Schimmel0 Short street 11 Tallinn - 11111 + 11111 EE + +372.12345678 + aleandro@kub.info registrar1 - - 2015-05-27 10:43:24 UTC + TEST-CREATOR + 2015-06-02T14:33:33Z password - @@ -3633,7 +3654,7 @@ RESPONSE: ABC-12345 - ccReg-8181550058 + ccReg-9855190337 @@ -3679,7 +3700,7 @@ RESPONSE: ABC-12345 - ccReg-6586282287 + ccReg-7982342225 @@ -3727,7 +3748,7 @@ RESPONSE: ABC-12345 - ccReg-2861885021 + ccReg-7845786975 @@ -3741,7 +3762,7 @@ REQUEST: - FIRST0:SH762612490 + FIRST0:SH946374880 wrong-pw @@ -3763,7 +3784,7 @@ RESPONSE: ABC-12345 - ccReg-0042572211 + ccReg-8286790305 @@ -3809,7 +3830,7 @@ RESPONSE: ABC-12345 - ccReg-4742331049 + ccReg-7742830004 @@ -3857,7 +3878,7 @@ RESPONSE: ABC-12345 - ccReg-6748839643 + ccReg-1203730643 @@ -3871,7 +3892,7 @@ REQUEST: - FIRST0:SH762612490 + FIRST0:SH946374880 @@ -3893,19 +3914,20 @@ RESPONSE: - FIRST0:SH762612490 + FIRST0:SH946374880 + EIS-1 + - Liliana Crist II0 + Kurt Schimmel0 registrar1 - - 2015-05-27 10:43:24 UTC - + TEST-CREATOR + 2015-06-02T14:33:33Z ABC-12345 - ccReg-8839721470 + ccReg-9164005912 @@ -3951,45 +3973,7 @@ RESPONSE: ABC-12345 - ccReg-0850650289 - - - -``` - -### EPP Contact with valid user renew command returns 2101-unimplemented command - -REQUEST: - -```xml - - - - - - info-4444 - - 2fooBAR - - - - ABC-12345 - - -``` - -RESPONSE: - -```xml - - - - - Unimplemented command - - - ABC-12345 - ccReg-8524752910 + ccReg-6014474598 @@ -4035,7 +4019,7 @@ RESPONSE: ABC-12345 - ccReg-5841042302 + ccReg-3586501704 @@ -4051,7 +4035,7 @@ REQUEST: - example70096036052024755.ee + example97979453077790513.ee 1 @@ -4079,7 +4063,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -4107,7 +4091,7 @@ RESPONSE: ABC-12345 - ccReg-6329567919 + ccReg-8936253286 @@ -4151,7 +4135,7 @@ RESPONSE: ABC-12345 - ccReg-1727549112 + ccReg-3102704443 @@ -4167,7 +4151,7 @@ REQUEST: - example18875779892898751.ee + example48653744161833001.ee 1 @@ -4195,7 +4179,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -4214,14 +4198,14 @@ RESPONSE: - example18875779892898751.ee - 2015-05-27 10:43:30 UTC - 2016-05-27 00:00:00 UTC + example48653744161833001.ee + 2015-06-02T14:33:38Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-7138232020 + ccReg-9286293243 @@ -4237,7 +4221,7 @@ REQUEST: - example16518501250481074.ee + example66817551944190561.ee 1 @@ -4257,7 +4241,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -4276,14 +4260,14 @@ RESPONSE: - example16518501250481074.ee - 2015-05-27 10:43:30 UTC - 2016-05-27 00:00:00 UTC + example66817551944190561.ee + 2015-06-02T14:33:38Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-6949714810 + ccReg-6995988129 @@ -4299,14 +4283,14 @@ REQUEST: - example34657545915229578.ee + example82402742861508907.ee 1 - ns1.example34657545915229578.ee + ns1.example82402742861508907.ee - ns2.example34657545915229578.ee + ns2.example82402742861508907.ee FIXED:CITIZEN_1234 @@ -4325,7 +4309,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -4344,7 +4328,70 @@ RESPONSE: ABC-12345 - ccReg-3705921440 + ccReg-9037419208 + + + +``` + +### EPP Domain with citizen as a registrant does not create domain longer than 63 punicode characters + +REQUEST: + +```xml + + + + + + äääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääää.ee + 1 + + + ns1.example.net + 192.0.2.2 + 1080:0:0:0:8:800:200C:417A + + + ns2.example.net + + + FIXED:CITIZEN_1234 + FIXED:SH8013 + FIXED:SH8013 + FIXED:SH801333 + + + + + + 257 + 3 + 5 + AwEAAddt2AkLfYGKgiEZB5SmIF8EvrjxNMH6HtxWEA4RJ9Ao6LCWheg8 + + + + dGVzdCBmYWlsCg== + + + ABC-12345 + + +``` + +RESPONSE: + +```xml + + + + + Domain name is too long (maximum is 63 characters) [name_puny] + + + ABC-12345 + ccReg-3085886901 @@ -4388,7 +4435,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -4410,7 +4457,7 @@ RESPONSE: ABC-12345 - ccReg-3665167833 + ccReg-7084968793 @@ -4426,7 +4473,7 @@ REQUEST: - example95948665035556904.ee + example13970338235947248.ee 1 @@ -4438,10 +4485,6 @@ REQUEST: ns2.example.net - FIXED:SH8013 - FIXED:SH8013 - FIXED:SH801333 - @@ -4454,7 +4497,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -4473,7 +4516,7 @@ RESPONSE: ABC-12345 - ccReg-2552697936 + ccReg-9708640722 @@ -4489,9 +4532,8 @@ REQUEST: - example48967884144781787.ee + example36404812133760036.ee 1 - FIXED:CITIZEN_1234 FIXED:SH8013 FIXED:SH8013 @@ -4508,7 +4550,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -4530,7 +4572,7 @@ RESPONSE: ABC-12345 - ccReg-9940643139 + ccReg-6232255185 @@ -4546,7 +4588,7 @@ REQUEST: - example26199879111999630.ee + example64818663597612903.ee 1 @@ -4608,7 +4650,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -4627,7 +4669,7 @@ RESPONSE: ABC-12345 - ccReg-9523508089 + ccReg-0166668620 @@ -4643,7 +4685,7 @@ REQUEST: - example67443327025915260.ee + example466056723821534.ee 1 @@ -4669,7 +4711,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -4697,7 +4739,7 @@ RESPONSE: ABC-12345 - ccReg-1674811016 + ccReg-6405494345 @@ -4713,7 +4755,7 @@ REQUEST: - example4862326639681440.ee + example99592330630112280.ee 1 ns1.example.ee @@ -4735,7 +4777,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -4754,7 +4796,7 @@ RESPONSE: ABC-12345 - ccReg-0201147447 + ccReg-8841286613 @@ -4770,7 +4812,7 @@ REQUEST: - example67163358337402331.ee + example83128312703818883.ee 1 @@ -4793,7 +4835,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -4812,14 +4854,14 @@ RESPONSE: - example67163358337402331.ee - 2015-05-27 10:43:31 UTC - 2016-05-27 00:00:00 UTC + example83128312703818883.ee + 2015-06-02T14:33:39Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-8005178303 + ccReg-7686175512 @@ -4835,7 +4877,7 @@ REQUEST: - example83921540659724800.ee + example95662100754576979.ee 1 @@ -4858,7 +4900,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -4886,7 +4928,7 @@ RESPONSE: ABC-12345 - ccReg-0480672774 + ccReg-8065017773 @@ -4902,7 +4944,7 @@ REQUEST: - example31168439878572805.ee + example31948540706621474.ee 1 @@ -4930,7 +4972,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -4949,14 +4991,14 @@ RESPONSE: - example31168439878572805.ee - 2015-05-27 10:43:31 UTC - 2016-05-27 00:00:00 UTC + example31948540706621474.ee + 2015-06-02T14:33:39Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-0710914199 + ccReg-6969997272 @@ -4972,7 +5014,7 @@ REQUEST: - example91174490590886314.ee + example55223163817914543.ee 367 @@ -5000,7 +5042,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -5022,7 +5064,7 @@ RESPONSE: ABC-12345 - ccReg-2677386716 + ccReg-1469657787 @@ -5038,7 +5080,7 @@ REQUEST: - example91267215976498865.ee + example82050076629523994.ee 1 @@ -5078,7 +5120,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -5097,14 +5139,14 @@ RESPONSE: - example91267215976498865.ee - 2015-05-27 10:43:31 UTC - 2016-05-27 00:00:00 UTC + example82050076629523994.ee + 2015-06-02T14:33:39Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-6086717774 + ccReg-1291527721 @@ -5120,7 +5162,7 @@ REQUEST: - example45325893459192952.ee + example88380998944355738.ee 1 @@ -5160,7 +5202,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -5215,7 +5257,7 @@ RESPONSE: ABC-12345 - ccReg-8175538906 + ccReg-2996508750 @@ -5231,7 +5273,7 @@ REQUEST: - example15916927116711123.ee + example78024773592821660.ee 1 @@ -5265,7 +5307,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -5287,7 +5329,7 @@ RESPONSE: ABC-12345 - ccReg-9219211054 + ccReg-3990884046 @@ -5303,7 +5345,7 @@ REQUEST: - example91454458242964658.ee + example62588279782335028.ee 1 @@ -5337,7 +5379,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -5356,7 +5398,7 @@ RESPONSE: ABC-12345 - ccReg-9548686640 + ccReg-9057177563 @@ -5372,7 +5414,7 @@ REQUEST: - example71491564741929352.ee + example23779866043469851.ee 1 @@ -5400,7 +5442,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -5419,14 +5461,14 @@ RESPONSE: - example71491564741929352.ee - 2015-05-27 10:43:32 UTC - 2016-05-27 00:00:00 UTC + example23779866043469851.ee + 2015-06-02T14:33:40Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-4235232567 + ccReg-1959065324 @@ -5442,7 +5484,7 @@ REQUEST: - example30406577928067538.ee + example90731484534199208.ee 1 @@ -5476,7 +5518,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -5495,14 +5537,14 @@ RESPONSE: - example30406577928067538.ee - 2015-05-27 10:43:32 UTC - 2016-05-27 00:00:00 UTC + example90731484534199208.ee + 2015-06-02T14:33:40Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-7688480402 + ccReg-3315923078 @@ -5518,7 +5560,7 @@ REQUEST: - example63040009625343060.ee + example6010525958819346.ee 1 @@ -5552,7 +5594,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -5571,7 +5613,7 @@ RESPONSE: ABC-12345 - ccReg-5582933815 + ccReg-6597744146 @@ -5587,7 +5629,7 @@ REQUEST: - example73287430336373315.ee + example14316008823537053.ee 1 @@ -5615,7 +5657,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -5634,7 +5676,7 @@ RESPONSE: ABC-12345 - ccReg-4249180668 + ccReg-0772908747 @@ -5650,7 +5692,7 @@ REQUEST: - example12685922679382848.ee + example9010839918822151.ee 1 @@ -5684,7 +5726,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -5703,7 +5745,7 @@ RESPONSE: ABC-12345 - ccReg-3972247485 + ccReg-1833299590 @@ -5719,7 +5761,7 @@ REQUEST: - example31407412492547028.ee + example9990759274413940.ee 1 @@ -5745,7 +5787,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -5764,14 +5806,14 @@ RESPONSE: - example31407412492547028.ee - 2015-05-27 10:43:32 UTC - 2016-05-27 00:00:00 UTC + example9990759274413940.ee + 2015-06-02T14:33:40Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-4939043794 + ccReg-6732223093 @@ -5787,7 +5829,7 @@ REQUEST: - example43179409594610423.ee + example39274446147988090.ee 1 @@ -5813,7 +5855,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -5832,7 +5874,7 @@ RESPONSE: ABC-12345 - ccReg-9685299222 + ccReg-6391772176 @@ -5848,7 +5890,7 @@ REQUEST: - example11348446936077523.ee + example16815979329457392.ee 1 @@ -5874,7 +5916,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -5896,7 +5938,7 @@ RESPONSE: ABC-12345 - ccReg-4691511606 + ccReg-3306715686 @@ -5944,7 +5986,7 @@ RESPONSE: ABC-12345 - ccReg-0917111585 + ccReg-4123563386 @@ -5960,13 +6002,13 @@ REQUEST: domain1.ee - 7e6a4a98534e2582634758ca77ee7148 + 7e7586cd94b553f5a07d6d8aa45d644f - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -5988,15 +6030,15 @@ RESPONSE: domain1.ee serverApproved REGDOMAIN2 - 2015-05-27 10:43:32 UTC + 2015-06-02T14:33:41Z REGDOMAIN1 - 2015-05-27 10:43:32 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T14:33:41Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-3335421781 + ccReg-8723385830 @@ -6042,7 +6084,7 @@ RESPONSE: ABC-12345 - ccReg-6267499339 + ccReg-5383535423 @@ -6070,23 +6112,23 @@ RESPONSE: Command completed successfully; ack to dequeue - 2015-05-27 10:43:33 UTC - Domain transfer was approved, associated contacts are: ["REGDOMAIN2:2C52859D", "REGDOMAIN2:A464BC75"] + 2015-06-02T14:33:41Z + Domain transfer was approved, associated contacts are: ["REGDOMAIN2:758A573F", "REGDOMAIN2:ED05964C"] domain1.ee serverApproved REGDOMAIN2 - 2015-05-27 10:43:32 UTC + 2015-06-02T14:33:41Z REGDOMAIN1 - 2015-05-27 10:43:32 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T14:33:41Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-9254728904 + ccReg-2621052839 @@ -6102,13 +6144,13 @@ REQUEST: domain1.ee - 055ee8bb38b32b97e378132ff3ca916c + e6e69f7fe16e4e106d6731a4015377b0 - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -6130,15 +6172,15 @@ RESPONSE: domain1.ee pending REGDOMAIN1 - 2015-05-27 10:43:33 UTC + 2015-06-02T14:33:41Z REGDOMAIN2 - 2015-05-27 11:43:33 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T15:33:41Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-0275538941 + ccReg-0830742222 @@ -6154,13 +6196,13 @@ REQUEST: domain1.ee - 055ee8bb38b32b97e378132ff3ca916c + e6e69f7fe16e4e106d6731a4015377b0 - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -6182,15 +6224,15 @@ RESPONSE: domain1.ee pending REGDOMAIN1 - 2015-05-27 10:43:33 UTC + 2015-06-02T14:33:41Z REGDOMAIN2 - 2015-05-27 11:43:33 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T15:33:41Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-0757752457 + ccReg-9024073555 @@ -6236,7 +6278,7 @@ RESPONSE: ABC-12345 - ccReg-7935547078 + ccReg-9937559312 @@ -6264,7 +6306,7 @@ RESPONSE: Command completed successfully; ack to dequeue - 2015-05-27 10:43:33 UTC + 2015-06-02T14:33:41Z Transfer requested. @@ -6272,15 +6314,15 @@ RESPONSE: domain1.ee pending REGDOMAIN1 - 2015-05-27 10:43:33 UTC + 2015-06-02T14:33:41Z REGDOMAIN2 - 2015-05-27 11:43:33 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T15:33:41Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-9141426728 + ccReg-7780959753 @@ -6326,7 +6368,7 @@ RESPONSE: ABC-12345 - ccReg-6011620786 + ccReg-2246481184 @@ -6372,7 +6414,7 @@ RESPONSE: ABC-12345 - ccReg-3668445992 + ccReg-1396088307 @@ -6402,7 +6444,7 @@ RESPONSE: ABC-12345 - ccReg-3613917922 + ccReg-6864941546 @@ -6448,7 +6490,7 @@ RESPONSE: ABC-12345 - ccReg-0925120539 + ccReg-9877149049 @@ -6496,7 +6538,7 @@ RESPONSE: ABC-12345 - ccReg-6028794756 + ccReg-8299015369 @@ -6512,13 +6554,13 @@ REQUEST: domain2.ee - a3507d8fe60d7b06de6fa7ee3b7a11ad + 4b6cfd8eac3aa625abcd2701cdab992e - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -6540,15 +6582,15 @@ RESPONSE: domain2.ee pending REGDOMAIN2 - 2015-05-27 10:43:34 UTC + 2015-06-02T14:33:42Z REGDOMAIN1 - 2015-05-27 11:43:34 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T15:33:42Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-7730469220 + ccReg-7619243484 @@ -6594,7 +6636,7 @@ RESPONSE: ABC-12345 - ccReg-9035579043 + ccReg-1996107650 @@ -6640,7 +6682,7 @@ RESPONSE: ABC-12345 - ccReg-4920254507 + ccReg-0249347226 @@ -6656,13 +6698,13 @@ REQUEST: domain2.ee - a3507d8fe60d7b06de6fa7ee3b7a11ad + 4b6cfd8eac3aa625abcd2701cdab992e - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -6684,15 +6726,15 @@ RESPONSE: domain2.ee pending REGDOMAIN2 - 2015-05-27 10:43:34 UTC + 2015-06-02T14:33:42Z REGDOMAIN1 - 2015-05-27 11:43:34 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T15:33:42Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-5694613676 + ccReg-4125354250 @@ -6738,7 +6780,7 @@ RESPONSE: ABC-12345 - ccReg-5785816065 + ccReg-2686066388 @@ -6786,7 +6828,7 @@ RESPONSE: ABC-12345 - ccReg-7366349974 + ccReg-3853305583 @@ -6802,7 +6844,7 @@ REQUEST: domain3.ee - a0b72c9e75ef63d04bb9ad8715ca48fc + fbc72d17f1d36f777dae6b2b13596d78 @@ -6825,15 +6867,15 @@ RESPONSE: domain3.ee serverApproved REGDOMAIN2 - 2015-05-27 10:43:34 UTC + 2015-06-02T14:33:42Z REGDOMAIN1 - 2015-05-27 10:43:34 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T14:33:42Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-6246328390 + ccReg-3487001485 @@ -6879,7 +6921,7 @@ RESPONSE: ABC-12345 - ccReg-0391926934 + ccReg-6417869434 @@ -6927,7 +6969,7 @@ RESPONSE: ABC-12345 - ccReg-7912772234 + ccReg-1335168095 @@ -6943,7 +6985,7 @@ REQUEST: domain4.ee - b083517b9f3a926e61702411cdf0c7be + 0221135c2fb643b574986c2af1a8cb9f @@ -6966,15 +7008,15 @@ RESPONSE: domain4.ee serverApproved REGDOMAIN2 - 2015-05-27 10:43:34 UTC + 2015-06-02T14:33:43Z REGDOMAIN1 - 2015-05-27 10:43:35 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T14:33:43Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-2452237245 + ccReg-1484348708 @@ -7020,7 +7062,7 @@ RESPONSE: ABC-12345 - ccReg-5853115117 + ccReg-4456747164 @@ -7068,7 +7110,7 @@ RESPONSE: ABC-12345 - ccReg-7994647230 + ccReg-6378968609 @@ -7084,7 +7126,7 @@ REQUEST: domain5.ee - c6ac11f0a30b90e2435872b947f676bc + 8762d1f1c64594a5b80e5b1a68b5dc58 @@ -7107,15 +7149,15 @@ RESPONSE: domain5.ee serverApproved REGDOMAIN2 - 2015-05-27 10:43:35 UTC + 2015-06-02T14:33:43Z REGDOMAIN1 - 2015-05-27 10:43:35 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T14:33:43Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-8456401947 + ccReg-4043670156 @@ -7161,7 +7203,7 @@ RESPONSE: ABC-12345 - ccReg-0451125168 + ccReg-8973567200 @@ -7209,7 +7251,7 @@ RESPONSE: ABC-12345 - ccReg-9996143631 + ccReg-9166329529 @@ -7225,7 +7267,7 @@ REQUEST: domain8.ee - 15c978c4fdb8c7c8b320ff836238ff24 + 723383e28c2a831f8cd05d47a6fdae6a @@ -7248,15 +7290,15 @@ RESPONSE: domain8.ee serverApproved REGDOMAIN2 - 2015-05-27 10:43:36 UTC + 2015-06-02T14:33:44Z REGDOMAIN1 - 2015-05-27 10:43:36 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T14:33:44Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-6547163770 + ccReg-9917679448 @@ -7302,7 +7344,7 @@ RESPONSE: ABC-12345 - ccReg-8938696546 + ccReg-5483450921 @@ -7350,7 +7392,7 @@ RESPONSE: ABC-12345 - ccReg-1935599554 + ccReg-0451723771 @@ -7366,7 +7408,7 @@ REQUEST: domain9.ee - 99e7f00907374d57c7152d5a4cf6306c + c1f7bdb825982a7d1da9170ef3721274 @@ -7389,15 +7431,15 @@ RESPONSE: domain9.ee serverApproved REGDOMAIN2 - 2015-05-27 10:43:36 UTC + 2015-06-02T14:33:44Z REGDOMAIN1 - 2015-05-27 10:43:36 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T14:33:44Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-6108438709 + ccReg-9585905070 @@ -7443,7 +7485,7 @@ RESPONSE: ABC-12345 - ccReg-7842682602 + ccReg-3585610255 @@ -7491,7 +7533,7 @@ RESPONSE: ABC-12345 - ccReg-7725230435 + ccReg-2766683979 @@ -7507,7 +7549,7 @@ REQUEST: domain11.ee - 02c630c0d9e223719ccd33c01a93a81c + f6a02211d0c8ff3abdf3aa1e7b37f174 @@ -7530,15 +7572,15 @@ RESPONSE: domain11.ee serverApproved REGDOMAIN2 - 2015-05-27 10:43:37 UTC + 2015-06-02T14:33:45Z REGDOMAIN1 - 2015-05-27 10:43:37 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T14:33:45Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-0988527962 + ccReg-0499694005 @@ -7584,7 +7626,7 @@ RESPONSE: ABC-12345 - ccReg-1153070739 + ccReg-2413360344 @@ -7632,7 +7674,7 @@ RESPONSE: ABC-12345 - ccReg-1035262117 + ccReg-6430571545 @@ -7648,7 +7690,7 @@ REQUEST: domain14.ee - 8c8a24afd65fb32cbea0683f805a2394 + c1c20e74faf394a064622007e2c4e817 @@ -7671,15 +7713,15 @@ RESPONSE: domain14.ee serverApproved REGDOMAIN2 - 2015-05-27 10:43:37 UTC + 2015-06-02T14:33:45Z REGDOMAIN1 - 2015-05-27 10:43:37 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T14:33:45Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-3828737809 + ccReg-1645698502 @@ -7725,7 +7767,7 @@ RESPONSE: ABC-12345 - ccReg-6455795713 + ccReg-8777538869 @@ -7773,7 +7815,7 @@ RESPONSE: ABC-12345 - ccReg-8823340387 + ccReg-5887352110 @@ -7789,7 +7831,7 @@ REQUEST: domain15.ee - 0f81c488e43a5ff0d09d9ae2ad89534e + 8b2b1a7aad43d979486245b9d0ff473b @@ -7812,15 +7854,15 @@ RESPONSE: domain15.ee serverApproved REGDOMAIN2 - 2015-05-27 10:43:38 UTC + 2015-06-02T14:33:46Z REGDOMAIN1 - 2015-05-27 10:43:38 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T14:33:46Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-0363538601 + ccReg-9002038233 @@ -7866,7 +7908,7 @@ RESPONSE: ABC-12345 - ccReg-5923931571 + ccReg-4427386119 @@ -7914,7 +7956,7 @@ RESPONSE: ABC-12345 - ccReg-3627375804 + ccReg-4954325500 @@ -7950,7 +7992,7 @@ RESPONSE: ABC-12345 - ccReg-1686309037 + ccReg-0070482481 @@ -7996,7 +8038,7 @@ RESPONSE: ABC-12345 - ccReg-5701905644 + ccReg-0244475517 @@ -8014,13 +8056,13 @@ REQUEST: domain17.ee - 16eb001e706172697a4ae9ab2a7982d2 + 15af0f0a594f1941ebdee1c246662730 - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -8042,15 +8084,15 @@ RESPONSE: domain17.ee clientApproved REGDOMAIN2 - 2015-05-27 10:43:38 UTC + 2015-06-02T14:33:46Z REGDOMAIN1 - 2015-05-27 10:43:38 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T14:33:46Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-4816670665 + ccReg-0409704363 @@ -8098,7 +8140,7 @@ RESPONSE: ABC-12345 - ccReg-8804211053 + ccReg-9977243825 @@ -8114,13 +8156,13 @@ REQUEST: domain18.ee - b9d30de5879c3596d1f8a6c69a832a8a + 1acbd83c6c9bf4d5b3b5996f84ecc95e - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -8139,7 +8181,7 @@ RESPONSE: ABC-12345 - ccReg-2803345752 + ccReg-2167790493 @@ -8185,7 +8227,7 @@ RESPONSE: ABC-12345 - ccReg-6778373394 + ccReg-7318846508 @@ -8201,13 +8243,13 @@ REQUEST: domain18.ee - b9d30de5879c3596d1f8a6c69a832a8a + 1acbd83c6c9bf4d5b3b5996f84ecc95e - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -8229,15 +8271,15 @@ RESPONSE: domain18.ee clientRejected REGDOMAIN2 - 2015-05-27 10:43:39 UTC + 2015-06-02T14:33:47Z REGDOMAIN1 - 2015-05-27 10:43:39 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T14:33:47Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-5197335200 + ccReg-5500355407 @@ -8285,7 +8327,7 @@ RESPONSE: ABC-12345 - ccReg-5888721799 + ccReg-6363376009 @@ -8301,13 +8343,13 @@ REQUEST: domain19.ee - d41c85651d45c9289191006f559c9ec8 + a870b5d70e38d38576944360c17d9cec - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -8326,7 +8368,7 @@ RESPONSE: ABC-12345 - ccReg-7064775457 + ccReg-8901648621 @@ -8372,7 +8414,7 @@ RESPONSE: ABC-12345 - ccReg-9310455244 + ccReg-1238161989 @@ -8396,7 +8438,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -8415,7 +8457,7 @@ RESPONSE: ABC-12345 - ccReg-7658729961 + ccReg-7376446516 @@ -8433,13 +8475,13 @@ REQUEST: domain21.ee - 8ab45ffd3acddb71c6359404cb4c2c34 + 0d3a2916ece6b0c50896ab5d15367590 - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -8458,7 +8500,7 @@ RESPONSE: ABC-12345 - ccReg-1943177997 + ccReg-3149883241 @@ -8474,7 +8516,7 @@ REQUEST: - example98769030605825402.ee + example20038696444836827.ee 98oiewslkfkd @@ -8496,7 +8538,7 @@ RESPONSE: ABC-12345 - ccReg-6324054729 + ccReg-7463389906 @@ -8544,7 +8586,7 @@ RESPONSE: ABC-12345 - ccReg-2397606336 + ccReg-5292990151 @@ -8560,13 +8602,13 @@ REQUEST: domain22.ee - e9bfcbdfeeda4465e3a5f109f2377bca + 214caf4bb5bc9d803458b69400c8072e - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -8588,15 +8630,15 @@ RESPONSE: domain22.ee serverApproved REGDOMAIN2 - 2015-05-27 10:43:40 UTC + 2015-06-02T14:33:47Z REGDOMAIN1 - 2015-05-27 10:43:40 UTC - 2016-05-27 00:00:00 UTC + 2015-06-02T14:33:47Z + 2016-06-02T00:00:00Z ABC-12345 - ccReg-4954465709 + ccReg-3677521670 @@ -8612,13 +8654,13 @@ REQUEST: domain22.ee - e9bfcbdfeeda4465e3a5f109f2377bca + 214caf4bb5bc9d803458b69400c8072e - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -8637,7 +8679,7 @@ RESPONSE: ABC-12345 - ccReg-5087615942 + ccReg-4802342583 @@ -8683,7 +8725,7 @@ RESPONSE: ABC-12345 - ccReg-6484511821 + ccReg-3924775811 @@ -8701,13 +8743,13 @@ REQUEST: domain23.ee - d3e0cefadeefa7f1b2868f852adf1228 + cc0c225abd7c98fe19ae72398601bb8a - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -8726,7 +8768,7 @@ RESPONSE: ABC-12345 - ccReg-5156334511 + ccReg-4544248429 @@ -8751,7 +8793,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -8770,7 +8812,7 @@ RESPONSE: ABC-12345 - ccReg-1610390580 + ccReg-6875798999 @@ -8795,7 +8837,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -8814,7 +8856,108 @@ RESPONSE: ABC-12345 - ccReg-2809632744 + ccReg-3305778113 + + + +``` + +### EPP Domain with valid domain should not return action pending when changes are invalid + +REQUEST: + +```xml + + + + + + domain26.ee + + + + ns.bartell80.ee + + + ns.jones79.ee + + + ns.powlowski78.ee + + + + + FIXED:CITIZEN_1234 + + + + + + + dGVzdCBmYWlsCg== + + + ABC-12345 + + +``` + +RESPONSE: + +```xml + + + + + Nameservers count must be between 2-11 [nameservers] + + + ABC-12345 + ccReg-0383550395 + + + +``` + +### EPP Domain with valid domain should not return action pending when domain itself is already invaid + +REQUEST: + +```xml + + + + + + domain27.ee + + FIXED:CITIZEN_1234 + + + + + + + dGVzdCBmYWlsCg== + + + ABC-12345 + + +``` + +RESPONSE: + +```xml + + + + + Nameservers count must be between 2-11 [nameservers] + + + ABC-12345 + ccReg-6286875915 @@ -8830,7 +8973,7 @@ REQUEST: - domain26.ee + domain28.ee FIXED:CITIZEN_1234 @@ -8839,7 +8982,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -8858,7 +9001,7 @@ RESPONSE: ABC-12345 - ccReg-8912347187 + ccReg-8121147429 @@ -8874,7 +9017,7 @@ REQUEST: - domain27.ee + domain29.ee @@ -8927,7 +9070,7 @@ RESPONSE: ABC-12345 - ccReg-7279422608 + ccReg-8658915093 @@ -8941,7 +9084,7 @@ REQUEST: - domain27.ee + domain29.ee @@ -8991,7 +9134,7 @@ RESPONSE: ABC-12345 - ccReg-3196572742 + ccReg-8578037457 @@ -9005,7 +9148,7 @@ REQUEST: - domain27.ee + domain29.ee @@ -9094,7 +9237,7 @@ RESPONSE: ABC-12345 - ccReg-3629702536 + ccReg-7566265707 @@ -9110,10 +9253,7 @@ REQUEST: - domain28.ee - - FIXED:CITIZEN_1234 - + domain30.ee @@ -9127,6 +9267,9 @@ REQUEST: Payment overdue. + + FIXED:CITIZEN_1234 + @@ -9147,7 +9290,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -9169,7 +9312,7 @@ RESPONSE: ABC-12345 - ccReg-0035237276 + ccReg-5950602333 @@ -9183,10 +9326,7 @@ REQUEST: - domain28.ee - - FIXED:CITIZEN_1234 - + domain30.ee @@ -9200,6 +9340,9 @@ REQUEST: Payment overdue. + + FIXED:CITIZEN_1234 + @@ -9220,7 +9363,7 @@ REQUEST: - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -9239,7 +9382,7 @@ RESPONSE: ABC-12345 - ccReg-2590035754 + ccReg-7328085880 @@ -9255,7 +9398,7 @@ REQUEST: - domain29.ee + domain31.ee Payment overdue. @@ -9278,7 +9421,7 @@ RESPONSE: ABC-12345 - ccReg-0742932026 + ccReg-7227191488 @@ -9294,7 +9437,7 @@ REQUEST: - domain30.ee + domain32.ee @@ -9344,7 +9487,7 @@ RESPONSE: ABC-12345 - ccReg-5200564648 + ccReg-8437379909 @@ -9358,7 +9501,7 @@ REQUEST: - domain30.ee + domain32.ee @@ -9374,6 +9517,9 @@ REQUEST: + 256 + 3 + 254 700b97b591ed27ec2590d19f06f88bba700b97b591ed27ec2590d19f @@ -9395,7 +9541,7 @@ RESPONSE: ABC-12345 - ccReg-0319078323 + ccReg-9283346447 @@ -9409,7 +9555,7 @@ REQUEST: - domain30.ee + domain32.ee @@ -9425,6 +9571,9 @@ REQUEST: + 256 + 3 + 254 700b97b591ed27ec2590d19f06f88bba700b97b591ed27ec2590d19f @@ -9467,7 +9616,7 @@ RESPONSE: ABC-12345 - ccReg-1059381148 + ccReg-1720108341 @@ -9483,7 +9632,7 @@ REQUEST: - domain31.ee + domain33.ee @@ -9508,7 +9657,7 @@ RESPONSE: ABC-12345 - ccReg-5054919824 + ccReg-9356081676 @@ -9524,14 +9673,14 @@ REQUEST: - domain32.ee + domain34.ee - ns.mclaughlinauer93.ee + ns.will99.ee - FIXED:SH1132295975 + FIXED:SH1116533879 @@ -9551,7 +9700,7 @@ RESPONSE: ABC-12345 - ccReg-5215036552 + ccReg-5974789134 @@ -9565,14 +9714,14 @@ REQUEST: - domain32.ee + domain34.ee - ns.mclaughlinauer93.ee + ns.will99.ee - FIXED:SH1132295975 + FIXED:SH1116533879 @@ -9590,18 +9739,18 @@ RESPONSE: Nameserver already exists on this domain [hostname] - ns.mclaughlinauer93.ee + ns.will99.ee Contact already exists on this domain [contact_code_cache] - FIXED:SH1132295975 + FIXED:SH1116533879 ABC-12345 - ccReg-1074473944 + ccReg-8215045348 @@ -9617,7 +9766,7 @@ REQUEST: - domain33.ee + domain35.ee FIXED:CITIZEN_1234 @@ -9639,7 +9788,7 @@ RESPONSE: ABC-12345 - ccReg-6965471467 + ccReg-7276382072 @@ -9655,7 +9804,7 @@ REQUEST: - domain34.ee + domain36.ee @@ -9680,7 +9829,7 @@ RESPONSE: ABC-12345 - ccReg-9485651549 + ccReg-5601896519 @@ -9696,8 +9845,8 @@ REQUEST: - domain35.ee - 2016-05-27 + domain37.ee + 2016-06-02 1 @@ -9717,13 +9866,13 @@ RESPONSE: - domain35.ee - 2017-05-27 00:00:00 UTC + domain37.ee + 2017-06-02T00:00:00Z ABC-12345 - ccReg-2938890628 + ccReg-3668937945 @@ -9739,7 +9888,7 @@ REQUEST: - domain36.ee + domain38.ee 2200-08-07 1 @@ -9763,7 +9912,7 @@ RESPONSE: ABC-12345 - ccReg-6690551934 + ccReg-8246202320 @@ -9779,8 +9928,8 @@ REQUEST: - domain37.ee - 2016-05-27 + domain39.ee + 2016-06-02 4 @@ -9803,7 +9952,7 @@ RESPONSE: ABC-12345 - ccReg-2230915815 + ccReg-5737709562 @@ -9819,13 +9968,12 @@ REQUEST: - domain38.ee + domain40.ee 2fooBAR - ``` @@ -9841,22 +9989,23 @@ RESPONSE: - domain38.ee + domain40.ee + EIS-48 Payment overdue. - FIXED:REGISTRANT2741815436 - FIXED:SH0138863290 - FIXED:SH2076456589 + FIXED:REGISTRANT8974289838 + FIXED:SH4849477194 + FIXED:SH9764958293 - ns.gislason114.ee + ns.littlewalter120.ee 192.168.1.1 - ns.wilkinson115.ee + ns.upton121.ee 192.168.1.1 - ns.lemke116.ee + ns.stroman122.ee 192.168.1.1 @@ -9866,12 +10015,11 @@ RESPONSE: registrar1 - - 2015-05-27 10:43:43 UTC - 2016-05-27 00:00:00 UTC - 2015-05-27 10:43:43 UTC + 2015-06-02T14:33:51Z + 2015-06-02T14:33:51Z + 2016-06-02T00:00:00Z - fc35227d625b0f64334a64e79d830693 + a55da6ecdfddd94d11ec0905cb8655de @@ -9881,7 +10029,7 @@ RESPONSE: 123 3 1 - abc + 0D85A305D22FCB355BBE29AE9809363D697B64782B9CC73AE349350F8C2AE4BB 257 3 @@ -9893,7 +10041,7 @@ RESPONSE: 123 3 1 - abc + 0D85A305D22FCB355BBE29AE9809363D697B64782B9CC73AE349350F8C2AE4BB 0 3 @@ -9904,7 +10052,7 @@ RESPONSE: - ccReg-0824479428 + ccReg-0885097219 @@ -9918,13 +10066,12 @@ REQUEST: - domain38.ee + domain40.ee 2fooBAR - ``` @@ -9940,22 +10087,23 @@ RESPONSE: - domain38.ee + domain40.ee + EIS-48 Payment overdue. - FIXED:REGISTRANT2741815436 - FIXED:SH0138863290 - FIXED:SH2076456589 + FIXED:REGISTRANT8974289838 + FIXED:SH4849477194 + FIXED:SH9764958293 - ns.gislason114.ee + ns.littlewalter120.ee 192.168.1.1 - ns.wilkinson115.ee + ns.upton121.ee 192.168.1.1 - ns.lemke116.ee + ns.stroman122.ee 192.168.1.1 @@ -9965,12 +10113,11 @@ RESPONSE: registrar1 - - 2015-05-27 10:43:43 UTC - 2016-05-27 00:00:00 UTC - 2015-05-27 10:43:43 UTC + 2015-06-02T14:33:51Z + 2015-06-02T14:33:51Z + 2016-06-02T00:00:00Z - fc35227d625b0f64334a64e79d830693 + a55da6ecdfddd94d11ec0905cb8655de @@ -9980,7 +10127,7 @@ RESPONSE: 123 3 1 - abc + 0D85A305D22FCB355BBE29AE9809363D697B64782B9CC73AE349350F8C2AE4BB 257 3 @@ -9992,7 +10139,7 @@ RESPONSE: 123 3 1 - abc + 0D85A305D22FCB355BBE29AE9809363D697B64782B9CC73AE349350F8C2AE4BB 0 3 @@ -10003,7 +10150,7 @@ RESPONSE: - ccReg-2750667963 + ccReg-0658088724 @@ -10019,13 +10166,12 @@ REQUEST: - domain39.ee + domain41.ee 2fooBAR - ``` @@ -10040,7 +10186,7 @@ RESPONSE: Attribute is invalid: hosts - ccReg-0144253530 + ccReg-3142249796 @@ -10054,13 +10200,12 @@ REQUEST: - domain39.ee + domain41.ee 2fooBAR - ``` @@ -10076,35 +10221,35 @@ RESPONSE: - domain39.ee + domain41.ee + EIS-49 - FIXED:REGISTRANT3507395337 - FIXED:SH9812701792 - FIXED:SH5796684791 + FIXED:REGISTRANT9162686239 + FIXED:SH7788334096 + FIXED:SH1740525895 - ns1.domain39.ee + ns1.domain41.ee 192.168.1.1 1080:0:0:0:8:800:200C:417A - ns2.domain39.ee + ns2.domain41.ee 192.168.1.1 1080:0:0:0:8:800:200C:417A registrar1 - - 2015-05-27 10:43:43 UTC - 2016-05-27 00:00:00 UTC - 2015-05-27 10:43:43 UTC + 2015-06-02T14:33:52Z + 2015-06-02T14:33:52Z + 2016-06-02T00:00:00Z - fc42e6becbedb165889c19f43a2540ab + 5f736179dc1b98c7297181630045512a - ccReg-1069575583 + ccReg-3283683958 @@ -10118,13 +10263,12 @@ REQUEST: - domain39.ee + domain41.ee 2fooBAR - ``` @@ -10140,11 +10284,12 @@ RESPONSE: - domain39.ee + domain41.ee + EIS-49 - FIXED:REGISTRANT3507395337 - FIXED:SH9812701792 - FIXED:SH5796684791 + FIXED:REGISTRANT9162686239 + FIXED:SH7788334096 + FIXED:SH1740525895 ns3.test.ee @@ -10153,17 +10298,16 @@ RESPONSE: registrar1 - - 2015-05-27 10:43:43 UTC - 2016-05-27 00:00:00 UTC - 2015-05-27 10:43:43 UTC + 2015-06-02T14:33:52Z + 2015-06-02T14:33:52Z + 2016-06-02T00:00:00Z - fc42e6becbedb165889c19f43a2540ab + 5f736179dc1b98c7297181630045512a - ccReg-0643395459 + ccReg-2854509297 @@ -10177,13 +10321,12 @@ REQUEST: - domain39.ee + domain41.ee 2fooBAR - ``` @@ -10199,23 +10342,23 @@ RESPONSE: - domain39.ee + domain41.ee + EIS-49 - FIXED:REGISTRANT3507395337 - FIXED:SH9812701792 - FIXED:SH5796684791 + FIXED:REGISTRANT9162686239 + FIXED:SH7788334096 + FIXED:SH1740525895 registrar1 - - 2015-05-27 10:43:43 UTC - 2016-05-27 00:00:00 UTC - 2015-05-27 10:43:43 UTC + 2015-06-02T14:33:52Z + 2015-06-02T14:33:52Z + 2016-06-02T00:00:00Z - fc42e6becbedb165889c19f43a2540ab + 5f736179dc1b98c7297181630045512a - ccReg-3688764669 + ccReg-8226722399 @@ -10229,13 +10372,12 @@ REQUEST: - domain39.ee + domain41.ee 2fooBAR - ``` @@ -10251,19 +10393,20 @@ RESPONSE: - domain39.ee + domain41.ee + EIS-49 - FIXED:REGISTRANT3507395337 - FIXED:SH9812701792 - FIXED:SH5796684791 + FIXED:REGISTRANT9162686239 + FIXED:SH7788334096 + FIXED:SH1740525895 - ns1.domain39.ee + ns1.domain41.ee 192.168.1.1 1080:0:0:0:8:800:200C:417A - ns2.domain39.ee + ns2.domain41.ee 192.168.1.1 1080:0:0:0:8:800:200C:417A @@ -10274,17 +10417,16 @@ RESPONSE: registrar1 - - 2015-05-27 10:43:43 UTC - 2016-05-27 00:00:00 UTC - 2015-05-27 10:43:43 UTC + 2015-06-02T14:33:52Z + 2015-06-02T14:33:52Z + 2016-06-02T00:00:00Z - fc42e6becbedb165889c19f43a2540ab + 5f736179dc1b98c7297181630045512a - ccReg-5604815953 + ccReg-6981084869 @@ -10306,7 +10448,6 @@ REQUEST: - ``` @@ -10324,7 +10465,7 @@ RESPONSE: - ccReg-5161660847 + ccReg-1359177895 @@ -10340,13 +10481,12 @@ REQUEST: - domain40.ee + domain42.ee 2fooBAR - ``` @@ -10362,37 +10502,37 @@ RESPONSE: - domain40.ee + domain42.ee + EIS-50 - FIXED:REGISTRANT0887546238 - FIXED:SH8726482994 - FIXED:SH5179344293 + FIXED:REGISTRANT6447311340 + FIXED:SH0696214598 + FIXED:SH3579214897 - ns.renner120.ee + ns.torphyswaniawski126.ee 192.168.1.1 - ns.stiedemann121.ee + ns.runolfsson127.ee 192.168.1.1 - ns.walkermitchell122.ee + ns.pfannerstill128.ee 192.168.1.1 registrar1 - - 2015-05-27 10:43:44 UTC - 2016-05-27 00:00:00 UTC - 2015-05-27 10:43:44 UTC + 2015-06-02T14:33:52Z + 2015-06-02T14:33:52Z + 2016-06-02T00:00:00Z - 07b874494197f5d551179bde6c743dc1 + 24475eb76f7afbcbce6d58904499033c - ccReg-3483125791 + ccReg-6787531410 @@ -10440,7 +10580,7 @@ RESPONSE: ABC-12345 - ccReg-0433009755 + ccReg-5789785835 @@ -10454,13 +10594,12 @@ REQUEST: - domain41.ee + domain43.ee 2fooBAR - ``` @@ -10475,7 +10614,7 @@ RESPONSE: Authorization error - ccReg-9728706466 + ccReg-8890052432 @@ -10521,7 +10660,7 @@ RESPONSE: ABC-12345 - ccReg-3974422485 + ccReg-6132497444 @@ -10569,7 +10708,7 @@ RESPONSE: ABC-12345 - ccReg-4142452023 + ccReg-6672790066 @@ -10583,10 +10722,9 @@ REQUEST: - domain42.ee + domain44.ee - ``` @@ -10602,34 +10740,34 @@ RESPONSE: - domain42.ee + domain44.ee + EIS-52 - FIXED:REGISTRANT3430252540 - FIXED:SH3885267898 - FIXED:SH8898454097 + FIXED:REGISTRANT0437071142 + FIXED:SH96779090102 + FIXED:SH52024319101 - ns.bauch126.ee + ns.hettingerankunding132.ee 192.168.1.1 - ns.millerhudson127.ee + ns.jenkinshilll133.ee 192.168.1.1 - ns.jakubowskimacgyver128.ee + ns.moore134.ee 192.168.1.1 registrar1 - - 2015-05-27 10:43:44 UTC - 2016-05-27 00:00:00 UTC - 2015-05-27 10:43:44 UTC + 2015-06-02T14:33:52Z + 2015-06-02T14:33:52Z + 2016-06-02T00:00:00Z - ccReg-3186032703 + ccReg-5470335926 @@ -10675,7 +10813,7 @@ RESPONSE: ABC-12345 - ccReg-7433830827 + ccReg-7477648038 @@ -10723,7 +10861,7 @@ RESPONSE: ABC-12345 - ccReg-6666385262 + ccReg-0189080988 @@ -10737,13 +10875,12 @@ REQUEST: - domain43.ee + domain45.ee - caeb09c88ac3065e75384525e444b28d + 3e1fb38b022d134ee01fb5a7fd0d22bd - ``` @@ -10759,37 +10896,37 @@ RESPONSE: - domain43.ee + domain45.ee + EIS-53 - FIXED:REGISTRANT1287087941 - FIXED:SH25240842100 - FIXED:SH4103432799 + FIXED:REGISTRANT0039423743 + FIXED:SH26361564104 + FIXED:SH08557300103 - ns.murphysawayn129.ee + ns.will135.ee 192.168.1.1 - ns.parkerbailey130.ee + ns.oreilly136.ee 192.168.1.1 - ns.pagac131.ee + ns.kozey137.ee 192.168.1.1 registrar1 - - 2015-05-27 10:43:44 UTC - 2016-05-27 00:00:00 UTC - 2015-05-27 10:43:44 UTC + 2015-06-02T14:33:53Z + 2015-06-02T14:33:53Z + 2016-06-02T00:00:00Z - caeb09c88ac3065e75384525e444b28d + 3e1fb38b022d134ee01fb5a7fd0d22bd - ccReg-0149171551 + ccReg-5317920253 @@ -10835,7 +10972,7 @@ RESPONSE: ABC-12345 - ccReg-1852061545 + ccReg-8397152597 @@ -10851,12 +10988,12 @@ REQUEST: - domain44.ee + domain46.ee - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -10875,7 +11012,7 @@ RESPONSE: ABC-12345 - ccReg-2271849131 + ccReg-7041717131 @@ -10891,12 +11028,12 @@ REQUEST: - domain45.ee + domain47.ee - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -10915,7 +11052,7 @@ RESPONSE: ABC-12345 - ccReg-9476531499 + ccReg-4433625658 @@ -10931,12 +11068,12 @@ REQUEST: - domain46.ee + domain48.ee - JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== + dGVzdCBmYWlsCg== ABC-12345 @@ -10955,7 +11092,7 @@ RESPONSE: ABC-12345 - ccReg-0939566483 + ccReg-0993946563 @@ -10990,7 +11127,7 @@ RESPONSE: ABC-12345 - ccReg-9335855114 + ccReg-0059261865 @@ -11032,7 +11169,7 @@ RESPONSE: ABC-12345 - ccReg-4928370789 + ccReg-0464564986 @@ -11046,7 +11183,7 @@ REQUEST: - domain47.ee + domain49.ee ABC-12345 @@ -11066,14 +11203,14 @@ RESPONSE: - domain47.ee + domain49.ee in use ABC-12345 - ccReg-3952532476 + ccReg-9143909071 @@ -11123,7 +11260,7 @@ RESPONSE: ABC-12345 - ccReg-9733374439 + ccReg-7975888398 @@ -11170,7 +11307,7 @@ RESPONSE: ABC-12345 - ccReg-8694188647 + ccReg-2094076134 @@ -11218,7 +11355,7 @@ RESPONSE: ABC-12345 - ccReg-5192810508 + ccReg-8002054128 @@ -11233,7 +11370,7 @@ REQUEST: - domain48.ee + domain50.ee 256 3 @@ -11241,13 +11378,13 @@ REQUEST: cmlraXN0aGViZXN0 - d3e3d1fe3ece74a0927320fb3bb567de + d74cd8d1c9da83127bcbfdbefc781dd1 P1M13D - 1432723426 + 1433255634 ``` @@ -11261,12 +11398,12 @@ RESPONSE: Unimplemented object service - domain48.ee + domain50.ee - 1432723426 - ccReg-7694214472 + 1433255634 + ccReg-7577662278 @@ -11281,20 +11418,20 @@ REQUEST: - domain48.ee + domain50.ee 3 8 cmlraXN0aGViZXN0 - d3e3d1fe3ece74a0927320fb3bb567de + d74cd8d1c9da83127bcbfdbefc781dd1 Invalid Expiry - 1432723426 + 1433255634 ``` @@ -11315,8 +11452,8 @@ RESPONSE: - 1432723426 - ccReg-0640451513 + 1433255634 + ccReg-8125274982 @@ -11331,7 +11468,7 @@ REQUEST: - domain48.ee + domain50.ee 256 3 @@ -11339,13 +11476,13 @@ REQUEST: cmlraXN0aGViZXN0 - d3e3d1fe3ece74a0927320fb3bb567de + d74cd8d1c9da83127bcbfdbefc781dd1 Invalid Expiry - 1432723426 + 1433255634 ``` @@ -11363,8 +11500,8 @@ RESPONSE: - 1432723426 - ccReg-7577070399 + 1433255634 + ccReg-5401810171 @@ -11379,7 +11516,7 @@ REQUEST: - domain48.ee + domain50.ee 256 3 @@ -11387,13 +11524,13 @@ REQUEST: cmlraXN0aGViZXN0 - d3e3d1fe3ece74a0927320fb3bb567de + d74cd8d1c9da83127bcbfdbefc781dd1 Invalid Absolute - 1432723426 + 1433255634 ``` @@ -11411,8 +11548,8 @@ RESPONSE: - 1432723426 - ccReg-0078778441 + 1433255634 + ccReg-7214355118 @@ -11427,7 +11564,7 @@ REQUEST: - domain48.ee + domain50.ee 256 3 @@ -11435,14 +11572,14 @@ REQUEST: cmlraXN0aGViZXN0 - d3e3d1fe3ece74a0927320fb3bb567de + d74cd8d1c9da83127bcbfdbefc781dd1 P1D 2014-12-23 - 1432723426 + 1433255634 ``` @@ -11457,8 +11594,8 @@ RESPONSE: Exactly one parameter required: keyrelay > expiry > relative OR keyrelay > expiry > absolute - 1432723426 - ccReg-9000657815 + 1433255634 + ccReg-7644188011 @@ -11473,7 +11610,7 @@ REQUEST: - domain48.ee + domain50.ee 256 3 @@ -11481,7 +11618,7 @@ REQUEST: cmlraXN0aGViZXN0 - d3e3d1fe3ece74a0927320fb3bb567de + d74cd8d1c9da83127bcbfdbefc781dd1 P1D @@ -11490,7 +11627,7 @@ REQUEST: JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== - 1432723426 + 1433255634 ``` @@ -11504,12 +11641,12 @@ RESPONSE: Unimplemented object service - domain48.ee + domain50.ee - 1432723426 - ccReg-5852406493 + 1433255634 + ccReg-3128458487 @@ -11524,7 +11661,7 @@ REQUEST: - domain48.ee + domain50.ee 256 3 @@ -11532,7 +11669,7 @@ REQUEST: cmlraXN0aGViZXN0 - d3e3d1fe3ece74a0927320fb3bb567de + d74cd8d1c9da83127bcbfdbefc781dd1 P1D @@ -11541,7 +11678,7 @@ REQUEST: JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0Zp== - 1432723426 + 1433255634 ``` @@ -11556,8 +11693,8 @@ RESPONSE: Attribute is invalid: type - 1432723426 - ccReg-5724944407 + 1433255634 + ccReg-0297240223 @@ -11603,7 +11740,7 @@ RESPONSE: ABC-12345 - ccReg-9186607336 + ccReg-2389453333 @@ -11618,7 +11755,7 @@ REQUEST: - 1432723427 + 1433255635 ``` @@ -11633,8 +11770,8 @@ RESPONSE: Command completed successfully; no messages - 1432723427 - ccReg-4362839400 + 1433255635 + ccReg-4831425687 @@ -11682,7 +11819,7 @@ RESPONSE: ABC-12345 - ccReg-0618571136 + ccReg-5009213156 @@ -11695,7 +11832,7 @@ REQUEST: - 1432723427 + 1433255635 ``` @@ -11710,8 +11847,8 @@ RESPONSE: Command completed successfully; no messages - 1432723427 - ccReg-9229141591 + 1433255635 + ccReg-4579720314 @@ -11757,7 +11894,7 @@ RESPONSE: ABC-12345 - ccReg-7150833559 + ccReg-1117836622 @@ -11770,7 +11907,7 @@ REQUEST: - 1432723427 + 1433255635 ``` @@ -11785,12 +11922,12 @@ RESPONSE: Command completed successfully; ack to dequeue - 2015-05-27 10:43:47 UTC + 2015-06-02T14:33:55Z Balance low. - 1432723427 - ccReg-6409633797 + 1433255635 + ccReg-6818644062 @@ -11836,7 +11973,7 @@ RESPONSE: ABC-12345 - ccReg-1091372734 + ccReg-5629164655 @@ -11849,7 +11986,7 @@ REQUEST: - 1432723427 + 1433255635 ``` @@ -11867,8 +12004,8 @@ RESPONSE: - 1432723427 - ccReg-4266035206 + 1433255635 + ccReg-8779692532 @@ -11914,7 +12051,7 @@ RESPONSE: ABC-12345 - ccReg-5253306865 + ccReg-2322466492 @@ -11927,7 +12064,7 @@ REQUEST: - 1432723427 + 1433255635 ``` @@ -11943,8 +12080,8 @@ RESPONSE: - 1432723427 - ccReg-5030345374 + 1433255635 + ccReg-1448968329 @@ -11957,7 +12094,7 @@ REQUEST: - 1432723427 + 1433255635 ``` @@ -11975,8 +12112,8 @@ RESPONSE: - 1432723427 - ccReg-3853180260 + 1433255635 + ccReg-5059320168 @@ -11991,7 +12128,7 @@ REQUEST: - 1432723427 + 1433255635 ``` @@ -12006,8 +12143,8 @@ RESPONSE: Attribute is invalid: op - 1432723427 - ccReg-4855688629 + 1433255635 + ccReg-7334193234 @@ -12022,7 +12159,7 @@ REQUEST: - 1432723427 + 1433255635 ``` @@ -12037,12 +12174,12 @@ RESPONSE: Command completed successfully; ack to dequeue - 2015-05-27 10:43:47 UTC + 2015-06-02T14:33:55Z Smth else. - 1432723427 - ccReg-8604749468 + 1433255635 + ccReg-8601126353 @@ -12055,7 +12192,7 @@ REQUEST: - 1432723427 + 1433255635 ``` @@ -12071,8 +12208,8 @@ RESPONSE: - 1432723427 - ccReg-9137309782 + 1433255635 + ccReg-0720878869 @@ -12085,7 +12222,7 @@ REQUEST: - 1432723427 + 1433255635 ``` @@ -12100,12 +12237,12 @@ RESPONSE: Command completed successfully; ack to dequeue - 2015-05-27 10:43:47 UTC + 2015-06-02T14:33:55Z Something. - 1432723427 - ccReg-9591605036 + 1433255635 + ccReg-6387534980 @@ -12118,7 +12255,7 @@ REQUEST: - 1432723427 + 1433255635 ``` @@ -12134,8 +12271,8 @@ RESPONSE: - 1432723427 - ccReg-3197560707 + 1433255635 + ccReg-7629601014 @@ -12148,7 +12285,7 @@ REQUEST: - 1432723427 + 1433255635 ``` @@ -12163,12 +12300,12 @@ RESPONSE: Command completed successfully; ack to dequeue - 2015-05-27 10:43:47 UTC + 2015-06-02T14:33:55Z Balance low. - 1432723427 - ccReg-9671477441 + 1433255635 + ccReg-7195300830 @@ -12181,7 +12318,7 @@ REQUEST: - 1432723427 + 1433255635 ``` @@ -12197,8 +12334,8 @@ RESPONSE: - 1432723427 - ccReg-9804202574 + 1433255635 + ccReg-9650279518 @@ -12211,7 +12348,7 @@ REQUEST: - 1432723427 + 1433255635 ``` @@ -12226,8 +12363,8 @@ RESPONSE: Command completed successfully; no messages - 1432723427 - ccReg-8729751147 + 1433255635 + ccReg-7592361386 @@ -12242,7 +12379,7 @@ RESPONSE: EPP server (EIS) - 2015-05-27T10:43:48Z + 2015-06-02T14:33:56Z 1.0 en @@ -12318,7 +12455,7 @@ RESPONSE: ABC-12345 - ccReg-7587508443 + ccReg-7464095017 @@ -12366,7 +12503,7 @@ RESPONSE: ABC-12345 - ccReg-7134407379 + ccReg-2654938305 @@ -12380,9 +12517,11 @@ REQUEST: - - - + + + test.ee + + ABC-12345 @@ -12399,7 +12538,7 @@ RESPONSE: ABC-12345 - ccReg-5606311571 + ccReg-9898783286 @@ -12431,7 +12570,6 @@ REQUEST: - ``` @@ -12446,7 +12584,7 @@ RESPONSE: Authentication error; server closing connection - ccReg-3376507236 + ccReg-8185595001 @@ -12494,7 +12632,7 @@ RESPONSE: ABC-12345 - ccReg-1053185597 + ccReg-4199405905 @@ -12542,7 +12680,7 @@ RESPONSE: ABC-12345 - ccReg-9585410433 + ccReg-0414590639 @@ -12588,7 +12726,7 @@ RESPONSE: ABC-12345 - ccReg-0652880827 + ccReg-6335502065 @@ -12636,7 +12774,7 @@ RESPONSE: ABC-12345 - ccReg-4357103420 + ccReg-6677960555 @@ -12665,7 +12803,7 @@ RESPONSE: ABC-12345 - ccReg-2409810658 + ccReg-5660755803 @@ -12682,6 +12820,7 @@ REQUEST: gitlab ghyt9e4fu + abcdefg 1.0 en @@ -12696,7 +12835,6 @@ REQUEST: urn:ee:eis:xml:epp:eis-1.0 - abcdefg ABC-12345 @@ -12714,7 +12852,7 @@ RESPONSE: ABC-12345 - ccReg-7664508234 + ccReg-3509704396 @@ -12731,6 +12869,7 @@ REQUEST: gitlab ghyt9e4fu + 1.0 en @@ -12745,7 +12884,6 @@ REQUEST: urn:ee:eis:xml:epp:eis-1.0 - ABC-12345 @@ -12763,7 +12901,56 @@ RESPONSE: ABC-12345 - ccReg-8555388764 + ccReg-9043992654 + + + +``` + +### EPP Session when connected with valid user fails if new password is not valid + +REQUEST: + +```xml + + + + + gitlab + ghyt9e4fu + + + 1.0 + en + + + urn:ietf:params:xml:ns:domain-1.0 + urn:ietf:params:xml:ns:contact-1.0 + urn:ietf:params:xml:ns:host-1.0 + urn:ietf:params:xml:ns:keyrelay-1.0 + + urn:ietf:params:xml:ns:secDNS-1.1 + urn:ee:eis:xml:epp:eis-1.0 + + + + ABC-12345 + + +``` + +RESPONSE: + +```xml + + + + + Password is missing [password] + + + ABC-12345 + ccReg-6766869050 From 147892b4d9c58e18945bf2569a756240119f684b Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Tue, 2 Jun 2015 18:14:27 +0300 Subject: [PATCH 16/29] Legal doc should not be required on domain transfer #2595 --- app/views/registrar/domains/transfer_index.haml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/views/registrar/domains/transfer_index.haml b/app/views/registrar/domains/transfer_index.haml index 5eab1f5ae..ecc5ff1a4 100644 --- a/app/views/registrar/domains/transfer_index.haml +++ b/app/views/registrar/domains/transfer_index.haml @@ -17,11 +17,11 @@ class: 'form-control', autocomplete: 'off', required: true .form-group .col-md-3.control-label - = label_tag 'legal_document', t(:legal_document), class: 'required' + = label_tag 'legal_document', t(:legal_document) .col-md-7 - = file_field_tag 'legal_document', required: true + = file_field_tag 'legal_document' .form-group .col-md-10.text-right - %button.btn.btn-warning{ name: 'query' }= t(:query) - %button.btn.btn-warning{ name: 'approve' }= t(:approve) - %button.btn.btn-warning{ name: 'reject' }= t(:reject) + %button.btn.btn-warning{ name: 'query' }= t(:transfer) + /%button.btn.btn-warning{ name: 'approve' }= t(:approve) + /%button.btn.btn-warning{ name: 'reject' }= t(:reject) From 410914e16ebf3d0aacf13698ed3e39cd6e687c91 Mon Sep 17 00:00:00 2001 From: Priit Tark Date: Wed, 3 Jun 2015 10:06:40 +0300 Subject: [PATCH 17/29] Contact change notification email content update #2558 --- app/models/contact.rb | 18 +++++++++++++++++ .../contact_mailer/email_updated.html.erb | 12 ++++++----- .../contact_mailer/email_updated.text.erb | 14 +++++++------ spec/models/contact_spec.rb | 20 +++++++++++++++++++ 4 files changed, 53 insertions(+), 11 deletions(-) diff --git a/app/models/contact.rb b/app/models/contact.rb index 5cbc6ac53..f2de0a4fd 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -7,6 +7,7 @@ class Contact < ActiveRecord::Base has_many :domains, through: :domain_contacts has_many :statuses, class_name: 'ContactStatus', dependent: :destroy has_many :legal_documents, as: :documentable + has_many :registrant_domains, class_name: 'Domain', foreign_key: 'registrant_id' # when contant is registrant accepts_nested_attributes_for :legal_documents @@ -184,4 +185,21 @@ class Contact < ActiveRecord::Base errors.add(:ident, :invalid_country_code) end end + + def related_domain_descriptions + @desc = {} + + registrant_domains.each do |dom| + @desc[dom.name] ||= [] + @desc[dom.name] << :registrant + end + + domain_contacts.each do |dc| + @desc[dc.domain.name] ||= [] + @desc[dc.domain.name] << dc.name.downcase.to_sym + @desc[dc.domain.name] = @desc[dc.domain.name].compact + end + + @desc + end end diff --git a/app/views/contact_mailer/email_updated.html.erb b/app/views/contact_mailer/email_updated.html.erb index c461659b1..438bbdbb5 100644 --- a/app/views/contact_mailer/email_updated.html.erb +++ b/app/views/contact_mailer/email_updated.html.erb @@ -6,10 +6,10 @@ uus aadress: <%= @contact.email %>

Eposti aadressile saadetakse domeenidega seotud infot seal hulgas kinnitustaotluseid omaniku vahetuse ja domeeni kustutamise korral. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduga oma registripidaja poole. Teie registripidaja on <%= @contact.registrar.name %>

-<% if @contact.domain_contacts.present? %> +<% if @contact.related_domain_descriptions.present? %> Muudatusega seotud domeenid:
-<% @contact.domain_contacts.each do |dc| %> - <%= dc.domain.name %> (<%= dc.name %>)
+<% @contact.related_domain_descriptions.each do |domain, desc| %> + <%= domain %> (<%= desc.map { |d| t(:d) }.join(', ') %>)
<% end %> <% end %>
@@ -35,9 +35,11 @@ new address: <% @contact.email %>

E-mail addresses are used to send important information regarding your registered domains including applications for approval of registrant change and domain deletion. Please make sure that the update and contact information are correct. Incase of problems please turn to your registrar. Your registrar is <%= @contact.registrar.name %>

+<% if @contact.related_domain_descriptions.present? %> Domains affected by this update:
-<% @contact.domain_contacts.each do |dc| %> - <%= dc.domain.name %> (<%= dc.name %>)
+<% @contact.related_domain_descriptions.each do |domain, desc| %> + <%= domain %> (<%= desc.map { |d| t(:d) }.join(', ') %>)
+<% end %> <% end %>
Contact information:
diff --git a/app/views/contact_mailer/email_updated.text.erb b/app/views/contact_mailer/email_updated.text.erb index 5d70bca79..a304c5c66 100644 --- a/app/views/contact_mailer/email_updated.text.erb +++ b/app/views/contact_mailer/email_updated.text.erb @@ -6,11 +6,11 @@ uus aadress: <%= @contact.email %> Eposti aadressile saadetakse domeenidega seotud infot seal hulgas kinnitustaotluseid omaniku vahetuse ja domeeni kustutamise korral. Palun veenduge, et muudatus on korrektne ning probleemide korral pöörduga oma registripidaja poole. Teie registripidaja on <%= @contact.registrar.name %> -<% if @contact.domain_contacts.present? %> +<% if @contact.related_domain_descriptions.present? %> Muudatusega seotud domeenid: -<% @contact.domain_contacts.each do |dc| %> - <%= dc.domain.name %> (<%= dc.name %>) -<% end %> + <% @contact.related_domain_descriptions.each do |domain, desc| %> + <%= domain %> (<%= desc.map { |d| t(:d) }.join(', ') %>) + <% end %> <% end %> Kontaktandmed: @@ -35,9 +35,11 @@ new address: <% @contact.email %> E-mail addresses are used to send important information regarding your registered domains including applications for approval of registrant change and domain deletion. Please make sure that the update and contact information are correct. Incase of problems please turn to your registrar. Your registrar is <%= @contact.registrar.name %> +<% if @contact.related_domain_descriptions.present? %> Domains affected by this update: -<% @contact.domain_contacts.each do |dc| %> - <%= dc.domain.name %> (<%= dc.name %>) + <% @contact.related_domain_descriptions.each do |domain, desc| %> + <%= domain %> (<%= desc.map { |d| t(:d) }.join(', ') %>) + <% end %> <% end %> Contact information: diff --git a/spec/models/contact_spec.rb b/spec/models/contact_spec.rb index 107f72106..86fe6fc90 100644 --- a/spec/models/contact_spec.rb +++ b/spec/models/contact_spec.rb @@ -99,6 +99,10 @@ describe Contact do @contact.valid? @contact.errors[:code].should == ['is too long (maximum is 100 characters)'] end + + it 'should have no related domain descriptions' do + @contact.related_domain_descriptions.should == {} + end end context 'with valid attributes' do @@ -189,6 +193,22 @@ describe Contact do # contact.statuses.map(&:value).should == %w(ok linked) end + context 'as birthday' do + before do + @domain = Fabricate(:domain) + end + + it 'should have related domain descriptions hash' do + contact = @domain.registrant + contact.related_domain_descriptions.should == { "#{@domain.name}" => [:registrant] } + end + + it 'should have related domain descriptions hash' do + contact = @domain.contacts.first + contact.related_domain_descriptions.should == { "#{@domain.name}" => [:admin] } + end + end + context 'as birthday' do before :all do @contact.ident_type = 'birthday' From 245bcf2b6bb85f2a9bdea57a97851b96d9286291 Mon Sep 17 00:00:00 2001 From: Priit Tark Date: Wed, 3 Jun 2015 10:39:07 +0300 Subject: [PATCH 18/29] Add contact email translations #2558 --- app/views/contact_mailer/email_updated.html.erb | 4 ++-- app/views/contact_mailer/email_updated.text.erb | 4 ++-- config/locales/en.yml | 2 ++ config/locales/et.yml | 3 +++ 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/views/contact_mailer/email_updated.html.erb b/app/views/contact_mailer/email_updated.html.erb index 438bbdbb5..e4785444b 100644 --- a/app/views/contact_mailer/email_updated.html.erb +++ b/app/views/contact_mailer/email_updated.html.erb @@ -9,7 +9,7 @@ Eposti aadressile saadetakse domeenidega seotud infot seal hulgas kinnitustaotlu <% if @contact.related_domain_descriptions.present? %> Muudatusega seotud domeenid:
<% @contact.related_domain_descriptions.each do |domain, desc| %> - <%= domain %> (<%= desc.map { |d| t(:d) }.join(', ') %>)
+ <%= domain %> (<%= desc.map { |d| t(d, locale: :et) }.join(', ') %>)
<% end %> <% end %>
@@ -38,7 +38,7 @@ E-mail addresses are used to send important information regarding your registere <% if @contact.related_domain_descriptions.present? %> Domains affected by this update:
<% @contact.related_domain_descriptions.each do |domain, desc| %> - <%= domain %> (<%= desc.map { |d| t(:d) }.join(', ') %>)
+ <%= domain %> (<%= desc.map { |d| t(d, locale: :en) }.join(', ') %>)
<% end %> <% end %>
diff --git a/app/views/contact_mailer/email_updated.text.erb b/app/views/contact_mailer/email_updated.text.erb index a304c5c66..61d875351 100644 --- a/app/views/contact_mailer/email_updated.text.erb +++ b/app/views/contact_mailer/email_updated.text.erb @@ -9,7 +9,7 @@ Eposti aadressile saadetakse domeenidega seotud infot seal hulgas kinnitustaotlu <% if @contact.related_domain_descriptions.present? %> Muudatusega seotud domeenid: <% @contact.related_domain_descriptions.each do |domain, desc| %> - <%= domain %> (<%= desc.map { |d| t(:d) }.join(', ') %>) + <%= domain %> (<%= desc.map { |d| t(d, locale: :et) }.join(', ') %>) <% end %> <% end %> @@ -38,7 +38,7 @@ E-mail addresses are used to send important information regarding your registere <% if @contact.related_domain_descriptions.present? %> Domains affected by this update: <% @contact.related_domain_descriptions.each do |domain, desc| %> - <%= domain %> (<%= desc.map { |d| t(:d) }.join(', ') %>) + <%= domain %> (<%= desc.map { |d| t(d, locale: :en) }.join(', ') %>) <% end %> <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 954e89eeb..9203bf6ff 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -810,3 +810,5 @@ en: invalid_csr_or_crt: 'Invalid CSR or CRT' webserver_missing_client_cert_directive: 'Webserver missing client cert directive' webserver_client_cert_directive_should_be_required: 'Webserver client cert directive should be required' + tech: Tech contact + admin: Admin contact diff --git a/config/locales/et.yml b/config/locales/et.yml index 37e1e9dea..2e56c701f 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -2,3 +2,6 @@ et: username: 'Kasutajanimi' password: 'Parool' log_in: 'Logi sisse' + registrant: 'Registreerija' + tech: Tehniline kontakt + admin: Halduskontakt From 7a603d7ec6c65e1d27d65b3747128e45c50c7aa6 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Wed, 3 Jun 2015 10:40:27 +0300 Subject: [PATCH 19/29] Add logging for domain transfer #2595 --- app/models/epp/domain.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 8da4b4d6b..2b5b2d72c 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -395,7 +395,7 @@ class Epp::Domain < Domain at[:domain_statuses_attributes] += at_add[:domain_statuses_attributes] if frame.css('registrant').present? && frame.css('registrant').attr('verified').to_s.downcase != 'yes' - registrant_verification_asked! + registrant_verification_asked! end self.deliver_emails = true # turn on email delivery for epp @@ -415,7 +415,7 @@ class Epp::Domain < Domain return false unless valid? if frame.css('delete').attr('verified').to_s.downcase != 'yes' - registrant_verification_asked! + registrant_verification_asked! pending_delete! manage_automatic_statuses true # aka 1001 pending_delete @@ -550,6 +550,7 @@ class Epp::Domain < Domain return dt rescue => _e add_epp_error('2306', nil, nil, I18n.t('action_failed_due_to_server_error')) + logger.error(e) raise ActiveRecord::Rollback end end From 6293b3b1bb4addde7691abded40c8dd8163ce576 Mon Sep 17 00:00:00 2001 From: Priit Tark Date: Wed, 3 Jun 2015 10:42:50 +0300 Subject: [PATCH 20/29] Estonian translation update #2558 --- config/locales/et.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/locales/et.yml b/config/locales/et.yml index 2e56c701f..6f8a51040 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -2,6 +2,6 @@ et: username: 'Kasutajanimi' password: 'Parool' log_in: 'Logi sisse' - registrant: 'Registreerija' - tech: Tehniline kontakt - admin: Halduskontakt + registrant: registreerija + tech: tehniline kontakt + admin: halduskontakt From ce49a7aef2298e91351f2f0469f4d1ed2ecf1c75 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Wed, 3 Jun 2015 10:49:33 +0300 Subject: [PATCH 21/29] Typo fix #2595 --- app/models/epp/domain.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 2b5b2d72c..e49501080 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -550,7 +550,7 @@ class Epp::Domain < Domain return dt rescue => _e add_epp_error('2306', nil, nil, I18n.t('action_failed_due_to_server_error')) - logger.error(e) + logger.error(_e) raise ActiveRecord::Rollback end end From 2132489026edb866b0b3979066bee17f11a65c4c Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Wed, 3 Jun 2015 10:54:35 +0300 Subject: [PATCH 22/29] Skip contact validation on transfer #2595 --- app/models/epp/domain.rb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index e49501080..e6430dc5f 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -467,7 +467,7 @@ class Epp::Domain < Domain oc = c.deep_clone include: [:statuses] oc.code = nil oc.registrar_id = registrar_id - oc.save! + oc.save!(validate: false) oc end @@ -475,7 +475,7 @@ class Epp::Domain < Domain oc = Contact.find(contact_id) # n+1 workaround oc.registrar_id = registrar_id oc.generate_new_code! - oc.save! + oc.save!(validate: false) oc end @@ -548,9 +548,10 @@ class Epp::Domain < Domain save!(validate: false) return dt - rescue => _e + rescue => e add_epp_error('2306', nil, nil, I18n.t('action_failed_due_to_server_error')) - logger.error(_e) + logger.error('DOMAIN TRANSFER FAILED') + logger.error(e) raise ActiveRecord::Rollback end end From a7def0b7aebead1b0edd685f50b05d402e34fec9 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Wed, 3 Jun 2015 12:13:16 +0300 Subject: [PATCH 23/29] Fix contact code prefix on transfer #2595 --- app/models/contact.rb | 4 ++-- app/models/epp/domain.rb | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/models/contact.rb b/app/models/contact.rb index 3d5db652c..a5d558c98 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -148,10 +148,10 @@ class Contact < ActiveRecord::Base end # rubocop:enable Metrics/CyclomaticComplexity - # used only for contact trasphere + # used only for contact transfer def generate_new_code! return nil if registrar.blank? - registrar.reload # for contact transfere + registrar.reload # for contact transfer self[:code] = "#{registrar.code}:#{SecureRandom.hex(4)}".upcase end diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index e6430dc5f..3f054003b 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -467,6 +467,7 @@ class Epp::Domain < Domain oc = c.deep_clone include: [:statuses] oc.code = nil oc.registrar_id = registrar_id + oc.prefix_code oc.save!(validate: false) oc end From c1b5fc8265dfe650567ecdbc3daecab97197a920 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Wed, 3 Jun 2015 14:34:04 +0300 Subject: [PATCH 24/29] Fix domain name validation #2609 --- app/validators/domain_name_validator.rb | 3 +-- spec/models/domain_spec.rb | 14 +++++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/validators/domain_name_validator.rb b/app/validators/domain_name_validator.rb index 4d337b8b5..6a2d41c43 100644 --- a/app/validators/domain_name_validator.rb +++ b/app/validators/domain_name_validator.rb @@ -31,9 +31,8 @@ class DomainNameValidator < ActiveModel::EachValidator # rubocop: disable Metrics/LineLength unicode_chars = /\u00E4\u00F5\u00F6\u00FC\u0161\u017E/ # äõöüšž - regexp = /\A[a-zA-Z0-9#{unicode_chars}][a-zA-Z0-9#{unicode_chars}-]{0,61}[a-zA-Z0-9#{unicode_chars}]#{general_domains}\z/ + regexp = /\A[a-zA-Z0-9#{unicode_chars.source}][a-zA-Z0-9#{unicode_chars.source}-]{0,61}[a-zA-Z0-9#{unicode_chars.source}]#{general_domains.source}\z/ # rubocop: enable Metrics/LineLength - # rubocop: disable Style/DoubleNegation !!(value =~ regexp) # rubocop: enable Style/DoubleNegation diff --git a/spec/models/domain_spec.rb b/spec/models/domain_spec.rb index cc6c4e257..c9177b406 100644 --- a/spec/models/domain_spec.rb +++ b/spec/models/domain_spec.rb @@ -242,7 +242,7 @@ describe Domain do end it 'should not be valid when name length is longer than 63 characters' do - d = Fabricate.build(:domain, + d = Fabricate.build(:domain, name: "xn--4caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.ee") d.valid? d.errors.full_messages.should match_array([ @@ -294,6 +294,18 @@ describe Domain do d.errors.full_messages.should == ["Domain name Domain name is invalid"] end + it 'should not be valid with at character' do + d = Fabricate.build(:domain, name: 'dass@sf.ee') + d.valid? + d.errors.full_messages.should == ["Domain name Domain name is invalid"] + end + + it 'should not be valid with invalid characters' do + d = Fabricate.build(:domain, name: '@ba)s(?ä_:-df.ee') + d.valid? + d.errors.full_messages.should == ["Domain name Domain name is invalid"] + end + it 'should be valid when name length is two pynicodes' do d = Fabricate.build(:domain, name: "xn--4caa.ee") d.valid? From 1db3486e654c8b50bc7c1ce3ea82d6e65608152e Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Wed, 3 Jun 2015 15:14:52 +0300 Subject: [PATCH 25/29] Do not allow foreign domain renew #2629 --- app/controllers/epp/domains_controller.rb | 2 +- app/models/ability.rb | 2 +- spec/epp/domain_spec.rb | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 94a077758..6ddab07a0 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -77,7 +77,7 @@ class Epp::DomainsController < EppController end def renew - authorize! :renew, Epp::Domain + authorize! :renew, @domain handle_errors(@domain) and return unless @domain.renew( params[:parsed_frame].css('curExpDate').text, diff --git a/app/models/ability.rb b/app/models/ability.rb index 067b89a37..79dcb991a 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -28,7 +28,7 @@ class Ability can(:info, Epp::Domain) { |d, pw| d.registrar_id == @user.registrar_id || pw.blank? ? true : d.auth_info == pw } can(:check, Epp::Domain) can(:create, Epp::Domain) - can(:renew, Epp::Domain) + can(:renew, Epp::Domain) { |d| d.registrar_id == @user.registrar_id } can(:update, Epp::Domain) { |d, pw| d.registrar_id == @user.registrar_id || d.auth_info == pw } can(:transfer, Epp::Domain) { |d, pw| d.auth_info == pw } can(:view_password, Epp::Domain) { |d, pw| d.registrar_id == @user.registrar_id || d.auth_info == pw } diff --git a/spec/epp/domain_spec.rb b/spec/epp/domain_spec.rb index 73ba344ae..f14c79915 100644 --- a/spec/epp/domain_spec.rb +++ b/spec/epp/domain_spec.rb @@ -1993,6 +1993,21 @@ describe 'EPP Domain', epp: true do response[:results][0][:value].should == '4' end + it 'does not renew foreign domain' do + login_as :registrar2 do + exp_date = 1.year.since.to_date + xml = @epp_xml.domain.renew( + name: { value: domain.name }, + curExpDate: { value: exp_date.to_s }, + period: { value: '1', attrs: { unit: 'y' } } + ) + + response = epp_plain_request(xml) + response[:results][0][:msg].should == 'Authorization error' + response[:results][0][:result_code].should == '2201' + end + end + ### INFO ### it 'returns domain info' do domain.domain_statuses.build(value: DomainStatus::CLIENT_HOLD, description: 'Payment overdue.') From 4da89aaa8718c3113a6b89b99df7995aad347888 Mon Sep 17 00:00:00 2001 From: Priit Tark Date: Wed, 3 Jun 2015 16:34:37 +0300 Subject: [PATCH 26/29] Admin can change other users settings without user password #2646 --- .../stylesheets/shared/general-bootstrap.sass | 3 + app/assets/stylesheets/shared/general.sass | 2 + .../admin/admin_users_controller.rb | 13 ++- app/controllers/admin/api_users_controller.rb | 1 + app/models/admin_user.rb | 5 +- app/views/admin/admin_users/_form.haml | 14 ++- app/views/admin/api_users/_form.haml | 12 ++- spec/fabricators/admin_user_fabricator.rb | 2 +- spec/models/admin_user_spec.rb | 96 ++++++------------- 9 files changed, 67 insertions(+), 81 deletions(-) diff --git a/app/assets/stylesheets/shared/general-bootstrap.sass b/app/assets/stylesheets/shared/general-bootstrap.sass index 29a605cb7..20c8c3336 100644 --- a/app/assets/stylesheets/shared/general-bootstrap.sass +++ b/app/assets/stylesheets/shared/general-bootstrap.sass @@ -65,3 +65,6 @@ .required:after content: "*" margin: 0 0 0 1px + +.not-required:after + content: '' diff --git a/app/assets/stylesheets/shared/general.sass b/app/assets/stylesheets/shared/general.sass index b0b11c9aa..1a2975b5f 100644 --- a/app/assets/stylesheets/shared/general.sass +++ b/app/assets/stylesheets/shared/general.sass @@ -57,3 +57,5 @@ body > .container .text-grey color: grey + + diff --git a/app/controllers/admin/admin_users_controller.rb b/app/controllers/admin/admin_users_controller.rb index 2a0d24689..eb4a4cb25 100644 --- a/app/controllers/admin/admin_users_controller.rb +++ b/app/controllers/admin/admin_users_controller.rb @@ -11,6 +11,10 @@ class Admin::AdminUsersController < AdminController @admin_user = AdminUser.new end + def show; end + + def edit; end + def create @admin_user = AdminUser.new(admin_user_params) @@ -23,12 +27,11 @@ class Admin::AdminUsersController < AdminController end end - def show; end - - def edit; end - def update - if @admin_user.update(admin_user_params) + params[:admin_user].delete(:password) if params[:admin_user][:password].blank? + params[:admin_user].delete(:password_confirmation) if params[:admin_user][:password_confirmation].blank? + + if @admin_user.update_attributes(admin_user_params) flash[:notice] = I18n.t('record_updated') redirect_to [:admin, @admin_user] else diff --git a/app/controllers/admin/api_users_controller.rb b/app/controllers/admin/api_users_controller.rb index be2170016..6e0dd7f0f 100644 --- a/app/controllers/admin/api_users_controller.rb +++ b/app/controllers/admin/api_users_controller.rb @@ -29,6 +29,7 @@ class Admin::ApiUsersController < AdminController def edit; end def update + params[:api_user].delete(:password) if params[:api_user][:password].blank? if @api_user.update(api_user_params) flash[:notice] = I18n.t('record_updated') redirect_to [:admin, @api_user] diff --git a/app/models/admin_user.rb b/app/models/admin_user.rb index 79e8f5649..0634baef4 100644 --- a/app/models/admin_user.rb +++ b/app/models/admin_user.rb @@ -1,9 +1,10 @@ class AdminUser < User - validates :username, :password, :country_code, :roles, presence: true + validates :username, :country_code, :roles, presence: true validates :identity_code, uniqueness: true, allow_blank: true validates :identity_code, presence: true, if: -> { country_code == 'EE' } validates :email, presence: true - + validates :password, :password_confirmation, presence: true, if: :new_record? + validates :password_confirmation, presence: true, if: :encrypted_password_changed? validate :validate_identity_code, if: -> { country_code == 'EE' } ROLES = %w(user customer_service admin) # should not match to api_users roles diff --git a/app/views/admin/admin_users/_form.haml b/app/views/admin/admin_users/_form.haml index 8db7583f2..9a9aa8a80 100644 --- a/app/views/admin/admin_users/_form.haml +++ b/app/views/admin/admin_users/_form.haml @@ -11,14 +11,15 @@ - if @admin_user.new_record? || can?(:update, AdminUser) .form-group .col-md-4.control-label - = f.label :password + - not_required = @admin_user.new_record? ? '' : 'not-required' + = f.label :password, class: not_required .col-md-8 - = f.text_field(:password, class: 'form-control') + = f.password_field(:password, class: 'form-control') .form-group .col-md-4.control-label - = f.label :password_confirmation + = f.label :password_confirmation, class: not_required .col-md-8 - = f.text_field(:password_confirmation, class: 'form-control') + = f.password_field(:password_confirmation, class: 'form-control') %hr .form-group @@ -48,3 +49,8 @@ .row .col-md-8.text-right = button_tag(t(:save), class: 'btn btn-primary') + +:coffee + $("#admin_user_password").removeAttr('required') + $("#admin_user_password_confirmation").removeAttr('required') + diff --git a/app/views/admin/api_users/_form.haml b/app/views/admin/api_users/_form.haml index 24ca8465b..e6851e424 100644 --- a/app/views/admin/api_users/_form.haml +++ b/app/views/admin/api_users/_form.haml @@ -1,4 +1,5 @@ -= form_for([:admin, @api_user], multipart: true, html: {class: 'form-horizontal'}) do |f| += form_for([:admin, @api_user], multipart: true, + html: {class: 'form-horizontal', autocomplete: 'off'}) do |f| = render 'shared/full_errors', object: @api_user .row @@ -10,9 +11,11 @@ = f.text_field(:username, class: 'form-control') .form-group .col-md-4.control-label - = f.label :password + - not_required = @api_user.new_record? ? '' : 'not-required' + = f.label :password, class: not_required .col-md-7 - = f.text_field(:password, class: 'form-control') + = f.text_field :password, class: 'form-control', autocomplete: 'off' + .form-group .col-md-4.control-label = f.label :identity_code @@ -48,4 +51,5 @@ = button_tag(t(:save), class: 'btn btn-primary') :coffee - Autocomplete.bindAdminRegistrarSearch(); + Autocomplete.bindAdminRegistrarSearch() + $("#api_user_password").removeAttr('required') diff --git a/spec/fabricators/admin_user_fabricator.rb b/spec/fabricators/admin_user_fabricator.rb index 2c54ad938..a73596810 100644 --- a/spec/fabricators/admin_user_fabricator.rb +++ b/spec/fabricators/admin_user_fabricator.rb @@ -4,7 +4,7 @@ Fabricator(:admin_user) do username 'gitlab' password 'ghyt9e4fu' password_confirmation 'ghyt9e4fu' - email 'info@gitlab.eu' + email { sequence(:email) { |i| "info#{i}@example.com" } } country_code 'FI' roles ['admin'] end diff --git a/spec/models/admin_user_spec.rb b/spec/models/admin_user_spec.rb index d24ca24c5..a6b668a5d 100644 --- a/spec/models/admin_user_spec.rb +++ b/spec/models/admin_user_spec.rb @@ -4,95 +4,61 @@ require 'cancan/matchers' describe AdminUser do context 'with invalid attribute' do before :all do - @user = AdminUser.new + @admin_user = AdminUser.new end it 'should not be valid' do - @user.valid? - @user.errors.full_messages.should match_array([ + @admin_user.valid? + @admin_user.errors.full_messages.should match_array([ "Country code is missing", "Email Email is missing", "Email Email is missing", "Password Password is missing", "Password Password is missing", + "Password confirmation is missing", "Roles is missing", "Username Username is missing" ]) end it 'should not have any versions' do - @user.versions.should == [] + @admin_user.versions.should == [] end end context 'with valid attributes' do before :all do - @user = Fabricate(:admin_user) + @admin_user = Fabricate(:admin_user) end it 'should be valid' do - @user.valid? - @user.errors.full_messages.should match_array([]) + @admin_user.valid? + @admin_user.errors.full_messages.should match_array([]) end - # it 'should be valid twice' do - # @user = Fabricate(:admin_user) - # @user.valid? - # @user.errors.full_messages.should match_array([]) - # end + it 'should be valid twice' do + @admin_user = Fabricate(:admin_user) + @admin_user.valid? + @admin_user.errors.full_messages.should match_array([]) + end - # it 'should have one version' do - # with_versioning do - # @user.versions.should == [] - # @user.zip = 'New zip' - # @user.save - # @user.errors.full_messages.should match_array([]) - # @user.versions.size.should == 1 - # end - # end + it 'should have one version' do + with_versioning do + @admin_user.versions.should == [] + @admin_user.updated_at = Time.zone.now + @admin_user.save + @admin_user.errors.full_messages.should match_array([]) + @admin_user.versions.size.should == 1 + end + end + + it 'should require password confirmation when changing password' do + @admin_user.valid?.should == true + @admin_user.password = 'not confirmed' + @admin_user.valid? + @admin_user.errors.full_messages.should match_array([ + "Password confirmation doesn't match Password" + ]) + end end - - # describe 'abilities' do - # subject(:ability) { Ability.new(user) } - # let(:user) { nil } - - # context 'when user is admin' do - # let(:user) { Fabricate(:admin_user) } - - # it { should be_able_to(:manage, Domain.new) } - # it { should be_able_to(:manage, Contact.new) } - # it { should be_able_to(:manage, Registrar.new) } - # it { should be_able_to(:manage, Setting.new) } - # it { should be_able_to(:manage, ZonefileSetting.new) } - # it { should be_able_to(:manage, DomainVersion.new) } - # it { should be_able_to(:manage, User.new) } - # it { should be_able_to(:manage, ApiUser.new) } - # it { should be_able_to(:manage, Keyrelay.new) } - # it { should be_able_to(:manage, LegalDocument.new) } - # it { should be_able_to(:read, ApiLog::EppLog.new) } - # it { should be_able_to(:read, ApiLog::ReppLog.new) } - # it { should be_able_to(:index, :delayed_job) } - # it { should be_able_to(:create, :zonefile) } - # it { should be_able_to(:access, :settings_menu) } - # end - - # context 'when user is customer service' do - # let(:user) { Fabricate(:user, roles: ['customer_service']) } - - # it { should be_able_to(:manage, Domain.new) } - # it { should be_able_to(:manage, Contact.new) } - # it { should be_able_to(:manage, Registrar.new) } - # it { should_not be_able_to(:manage, Setting.new) } - # it { should_not be_able_to(:manage, ZonefileSetting.new) } - # it { should_not be_able_to(:manage, DomainVersion.new) } - # it { should_not be_able_to(:manage, User.new) } - # it { should_not be_able_to(:manage, ApiUser.new) } - # it { should_not be_able_to(:manage, LegalDocument.new) } - # it { should_not be_able_to(:read, ApiLog::EppLog.new) } - # it { should_not be_able_to(:read, ApiLog::ReppLog.new) } - # it { should_not be_able_to(:index, :delayed_job) } - # it { should_not be_able_to(:create, :zonefile) } - # it { should_not be_able_to(:access, :settings_menu) } - # end - # end end From ea95e878a595cfd27a919d4e6bff9f85da11ae94 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Wed, 3 Jun 2015 16:43:03 +0300 Subject: [PATCH 27/29] Hide action buttons on foreign domain info #2629 --- app/views/registrar/domains/info.haml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/views/registrar/domains/info.haml b/app/views/registrar/domains/info.haml index 369e0f87d..4d7ffb429 100644 --- a/app/views/registrar/domains/info.haml +++ b/app/views/registrar/domains/info.haml @@ -1,10 +1,11 @@ - content_for :actions do - = link_to(t(:edit), edit_registrar_domains_path(domain_name: params[:domain_name]), - class: 'btn btn-default') - = link_to(t(:renew), renew_registrar_domains_path(domain_name: params[:domain_name]), - class: 'btn btn-default') - = link_to(t(:delete), delete_registrar_domains_path(domain_name: params[:domain_name]), - class: 'btn btn-default') + - if @data.css('pw').text.present? + = link_to(t(:edit), edit_registrar_domains_path(domain_name: params[:domain_name]), + class: 'btn btn-default') + = link_to(t(:renew), renew_registrar_domains_path(domain_name: params[:domain_name]), + class: 'btn btn-default') + = link_to(t(:delete), delete_registrar_domains_path(domain_name: params[:domain_name]), + class: 'btn btn-default') = render 'shared/title', name: truncate(@data.css('name').text) .row From eaaf8b39f93391e27baf98796241ce2b222ad9fa Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Wed, 3 Jun 2015 18:09:20 +0300 Subject: [PATCH 28/29] Add password_confirmation to admin users #2646 --- app/controllers/admin/admin_users_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/admin/admin_users_controller.rb b/app/controllers/admin/admin_users_controller.rb index eb4a4cb25..372a9654a 100644 --- a/app/controllers/admin/admin_users_controller.rb +++ b/app/controllers/admin/admin_users_controller.rb @@ -57,6 +57,6 @@ class Admin::AdminUsersController < AdminController end def admin_user_params - params.require(:admin_user).permit(:username, :password, :identity_code, :email, :country_code, { roles: [] }) + params.require(:admin_user).permit(:username, :password, :password_confirmation, :identity_code, :email, :country_code, { roles: [] }) end end From 4b5243585d19a0d5e6e72ac08de3d01327a230ac Mon Sep 17 00:00:00 2001 From: Priit Tark Date: Thu, 4 Jun 2015 00:38:56 +0300 Subject: [PATCH 29/29] Added pricelist to admin #2380 --- Gemfile | 2 + Gemfile.lock | 79 ++--- app/assets/javascripts/admin-manifest.coffee | 5 - .../javascripts/admin/application.coffee | 16 +- .../javascripts/registrar/application.coffee | 2 +- app/assets/javascripts/shared/general.coffee | 17 +- app/assets/stylesheets/admin-manifest.sass | 2 + .../admin/pricelists_controller.rb | 44 +++ app/models/ability.rb | 1 + app/models/pricelist.rb | 16 + app/models/version/pricelist_version.rb | 4 + app/views/admin/pricelists/_form.haml | 33 ++ app/views/admin/pricelists/edit.haml | 6 + app/views/admin/pricelists/index.haml | 57 ++++ app/views/admin/pricelists/new.haml | 3 + app/views/layouts/admin/application.haml | 5 + config/initializers/datetime.rb | 3 + config/initializers/money.rb | 70 +++++ config/initializers/relaxed_i18n.rb | 11 + config/locales/en.yml | 6 +- config/routes.rb | 5 +- db/migrate/20150305092921_add_pricelist.rb | 25 ++ db/migrate/20150603141549_add_decimal_type.rb | 16 + .../20150603211318_change_price_to_decimal.rb | 5 + ...0150603212659_add_duration_to_pricelist.rb | 5 + db/schema.rb | 61 ++-- ...fest-777146d8396a4f217ac1f34291da0a5d.json | 1 + ...a255ddeb09cae1a258ee62f8cb0746496124a0.css | 30 ++ ...f00654de236d2bb1b16bbdf929b47e6504381f3.js | 201 ++++++++++++ ...749e49845ce9827c3254f31abc689b1cc284877.js | 201 ++++++++++++ ...5521a14a72e3bbeece3b4363494d70fcd274542.js | 1 + ...6f24a537dd2e4598238527d232a3e2ea5b5947.png | Bin 0 -> 7089 bytes ...5b0fbac11d63ec6106d959df3fa180b379de05.jpg | Bin 0 -> 69058 bytes ...1724d183a39ad072e73e1b3d8cbf646d2d0407.eot | Bin 0 -> 20127 bytes ...bcbb56bd4a53af4d83d316d6dd7a36903c43e5.svg | 288 ++++++++++++++++++ ...8596275a9839b959c226e15439557a5a80742.woff | Bin 0 -> 23424 bytes ...d06a1ea9361bdcf0b442d06a18a8051af57456.ttf | Bin 0 -> 45404 bytes ...a0cda5a44c4039214094e7957b4c040ef11c.woff2 | Bin 0 -> 18028 bytes ...872fe1d6a4f6f6da0066da6701b56cdb72ea96.png | Bin 0 -> 1130 bytes ...b41b722a97b93138a9a002091e1e5226d29bf5.png | Bin 0 -> 14496 bytes ...14532c59d498e1fd980ec129fded68da8bb307.png | Bin 0 -> 1440 bytes ...1005aa2615db7ac743e4037364d1021084043.woff | Bin 0 -> 26204 bytes ...bb7976b7ca31d0ebe8ec25bb4c3494d5d16e24.svg | 241 +++++++++++++++ ...934c7422062995738fd9e5715b02f55002d7c0.eot | Bin 0 -> 23109 bytes ...ee60b0217e91e46ec47f96710f70f996b61af1.ttf | Bin 0 -> 49748 bytes ...5aca2a7128c0ca0d640fd504e97bae0b028429.ttf | Bin 0 -> 51172 bytes ...1a7a503683d7afdb68360ed26bfac03e1b3c39.eot | Bin 0 -> 23707 bytes ...1d6ad48a5c6e4670c8fb6160a329fa4758c555.svg | 241 +++++++++++++++ ...d9e9620a729b2760b5eb1dcee52c4bc8e8805.woff | Bin 0 -> 26956 bytes ...5836c99ad989185f5d2a240d60ea14a1b7384a.ttf | Bin 0 -> 57040 bytes ...718486ff5fb416ab01740750db325179e58654.eot | Bin 0 -> 26426 bytes ...8ce4cba00872cf8ac56e299cf1397c146cac3.woff | Bin 0 -> 29884 bytes ...1f85162cee0c4dd0a3840260a2606eefc3e517.svg | 241 +++++++++++++++ ...a8a4ed9cf6bb5d3f00ccc0985b1308bfd86c49.ico | Bin 0 -> 1150 bytes ...f5ec5defb6c8e895b90f2f129815f5e550fe8e.gif | Bin 0 -> 564 bytes ...8acc60fb1a9036afd7736e432ac3f22f2e6fdf.svg | 238 +++++++++++++++ ...4aab34f3e68b337be90800db517e4a8d27d001.eot | Bin 0 -> 23124 bytes ...49714757fddba516c5db65e72867504493fbc.woff | Bin 0 -> 26228 bytes ...f68f2313502ee2bdeb2e56435ee24721baf5cd.ttf | Bin 0 -> 47396 bytes ...c67826d5031e6ab040194fdb7365dc83e95557.svg | 238 +++++++++++++++ ...faa26e7855c4292c730429477003b6dab5c08b.ttf | Bin 0 -> 47484 bytes ...860af03c359ed41d348ddb813dbcc3c460eb26.eot | Bin 0 -> 23273 bytes ...c99f1e7941fa91ff21a56550f2039834ee9d0.woff | Bin 0 -> 26492 bytes ...bd45567e5a1f83eeafcf9574da0399d5f602ab.png | Bin 0 -> 180 bytes ...265df288d8eb65dbbd7cf48aed2d0129887df5.png | Bin 0 -> 178 bytes ...6ecfc33e6145c49422443b00ac2b5a0022964c.png | Bin 0 -> 120 bytes ...feccd907953317cd5c0f689901733afda260b2.png | Bin 0 -> 105 bytes ...ddd95e1664597ce6c056ae44c162cc2e28cec4.png | Bin 0 -> 111 bytes ...e90ebe74a84384cb4700658e76e754c8bfe550.png | Bin 0 -> 110 bytes ...5f012869d1ee7c984775a569827a1784d34f5c.png | Bin 0 -> 119 bytes ...80fc633b6f84b87985eb016d25a560e2c38d4a.png | Bin 0 -> 101 bytes ...74422bee7486c8a182d60133728c672f2cdbbc.png | Bin 0 -> 4369 bytes ...8a0584bdbd6b4a4a9091ff1e6b3adb31e63bd9.png | Bin 0 -> 4369 bytes ...699e856a2980753c7a47b66447da5d9f93fb7f.png | Bin 0 -> 4369 bytes ...065f5833e05b97f7a052b1c141e754d62e1a8b.png | Bin 0 -> 4369 bytes ...81550d6412aa207f48468724a6a15402b6041b.png | Bin 0 -> 4369 bytes ...b1eb605798c2e9bd361cf44500f73038832030.png | Bin 0 -> 3417 bytes ...fest-9b19037852267cfe2c60a6bd51485d3f.json | 1 - ...f3aea4f7e7f0f9089fc0fbea4de410742e5239.gif | Bin 0 -> 1566 bytes ...f8acd0e8b16e09790e78f78da96d9f8633ef3b.png | Bin 0 -> 1181 bytes ...84b7df1f827e9aebbade86995e44f0320de332.css | 30 ++ ...548c0dd38c4ee2ad067fe962c06cc7e94d2ddac.js | 170 +++++++++++ ...329c1cb24da923bd357988c120cc5710230cc48.js | 170 +++++++++++ ...07b29ac369fc85f51ecd9e7bc2cdefa5297b4f3.js | 170 +++++++++++ ...80fdb8595319d31ea237173494e505a5b3751c6.js | 170 +++++++++++ ...06fcf43415a599a19bf0022cf3f9e9d6140a05.css | 30 ++ ...ccaa0b93f86cc789a9595158c98ee51393b8cb9.js | 1 + ...6f24a537dd2e4598238527d232a3e2ea5b5947.png | Bin 0 -> 7089 bytes ...b41b722a97b93138a9a002091e1e5226d29bf5.png | Bin 0 -> 14496 bytes ...08ae3ef726c7378324ac55fd5d378ba3a4dc2d.png | Bin 0 -> 12294 bytes ...6fb92427ae41e4649b934ca495991b7852b855.ico | 0 ...8a2c4a8a7cc97bfbdef6a66e22c72f33d5f25e.png | Bin 0 -> 2439 bytes ...331cd9e5123c9684950bab0406e98a24ac5ae8.png | Bin 0 -> 613 bytes ...ad9b70a3f91120737535dab4d4548a6c83576c.gif | Bin 0 -> 1849 bytes ...08ba1e7198c9c9accfa0b360b78018b9fb9bc2.png | Bin 0 -> 845 bytes ...679237496990148efb3bb9a2a10a2c070be1a7.css | 1 + ...08ae3ef726c7378324ac55fd5d378ba3a4dc2d.png | Bin 0 -> 12294 bytes ...2c579c97f382e5cc43fa111219077e7473fdbb.png | Bin 0 -> 1521 bytes ...6f24a537dd2e4598238527d232a3e2ea5b5947.png | Bin 0 -> 7089 bytes spec/fabricators/pricelist_fabricator.rb | 5 + spec/models/pricelist_spec.rb | 63 ++++ 101 files changed, 3155 insertions(+), 76 deletions(-) create mode 100644 app/controllers/admin/pricelists_controller.rb create mode 100644 app/models/pricelist.rb create mode 100644 app/models/version/pricelist_version.rb create mode 100644 app/views/admin/pricelists/_form.haml create mode 100644 app/views/admin/pricelists/edit.haml create mode 100644 app/views/admin/pricelists/index.haml create mode 100644 app/views/admin/pricelists/new.haml create mode 100644 config/initializers/datetime.rb create mode 100644 config/initializers/money.rb create mode 100644 config/initializers/relaxed_i18n.rb create mode 100644 db/migrate/20150305092921_add_pricelist.rb create mode 100644 db/migrate/20150603141549_add_decimal_type.rb create mode 100644 db/migrate/20150603211318_change_price_to_decimal.rb create mode 100644 db/migrate/20150603212659_add_duration_to_pricelist.rb create mode 100644 public/assets/.sprockets-manifest-777146d8396a4f217ac1f34291da0a5d.json create mode 100644 public/assets/admin-manifest-4df541812fe4c37894758e9b93a255ddeb09cae1a258ee62f8cb0746496124a0.css create mode 100644 public/assets/admin-manifest-5f612f59c9effcca0be5396c4f00654de236d2bb1b16bbdf929b47e6504381f3.js create mode 100644 public/assets/admin-manifest-a1d98585d33f501b3f72a9964749e49845ce9827c3254f31abc689b1cc284877.js create mode 100644 public/assets/admin/application-2e4aafc94dbce8d43d7bac4eb5521a14a72e3bbeece3b4363494d70fcd274542.js create mode 100644 public/assets/alpha-9ac45a6b3c13dd5c5cf1b5d18c6f24a537dd2e4598238527d232a3e2ea5b5947.png create mode 100644 public/assets/bg-b8036abd2f0f36e3ab54d5d5b25b0fbac11d63ec6106d959df3fa180b379de05.jpg create mode 100644 public/assets/bootstrap/glyphicons-halflings-regular-13634da87d9e23f8c3ed9108ce1724d183a39ad072e73e1b3d8cbf646d2d0407.eot create mode 100644 public/assets/bootstrap/glyphicons-halflings-regular-42f60659d265c1a3c30f9fa42abcbb56bd4a53af4d83d316d6dd7a36903c43e5.svg create mode 100644 public/assets/bootstrap/glyphicons-halflings-regular-a26394f7ede100ca118eff2eda08596275a9839b959c226e15439557a5a80742.woff create mode 100644 public/assets/bootstrap/glyphicons-halflings-regular-e395044093757d82afcb138957d06a1ea9361bdcf0b442d06a18a8051af57456.ttf create mode 100644 public/assets/bootstrap/glyphicons-halflings-regular-fe185d11a49676890d47bb783312a0cda5a44c4039214094e7957b4c040ef11c.woff2 create mode 100644 public/assets/danske-07a4395cc406785da129414e15872fe1d6a4f6f6da0066da6701b56cdb72ea96.png create mode 100644 public/assets/development-0b993e22410c7952394ac19ce3b41b722a97b93138a9a002091e1e5226d29bf5.png create mode 100644 public/assets/eis-logo-et-86a549d266cda73e3225c5eeba14532c59d498e1fd980ec129fded68da8bb307.png create mode 100644 public/assets/etelkalight-webfont-1ed38dbac6b817bf74bd46a98d61005aa2615db7ac743e4037364d1021084043.woff create mode 100644 public/assets/etelkalight-webfont-2b575f6e4696d74957af27a7c7bb7976b7ca31d0ebe8ec25bb4c3494d5d16e24.svg create mode 100644 public/assets/etelkalight-webfont-baf7e35ab2f64bf1c6fa4476d3934c7422062995738fd9e5715b02f55002d7c0.eot create mode 100644 public/assets/etelkalight-webfont-f68a2db6346d864f82c3b3e725ee60b0217e91e46ec47f96710f70f996b61af1.ttf create mode 100644 public/assets/etelkalightbold-webfont-0f06d1e7f099578e1cc0e9b1875aca2a7128c0ca0d640fd504e97bae0b028429.ttf create mode 100644 public/assets/etelkalightbold-webfont-1d94cabe6fb55b05f746fe0aa51a7a503683d7afdb68360ed26bfac03e1b3c39.eot create mode 100644 public/assets/etelkalightbold-webfont-bb0c8e17b99b10f211be3531a51d6ad48a5c6e4670c8fb6160a329fa4758c555.svg create mode 100644 public/assets/etelkalightbold-webfont-d608c036b3e3f04ca87a1c494f8d9e9620a729b2760b5eb1dcee52c4bc8e8805.woff create mode 100644 public/assets/etelkalightitalic-webfont-54eb91ad0e0b639f50be02b7c25836c99ad989185f5d2a240d60ea14a1b7384a.ttf create mode 100644 public/assets/etelkalightitalic-webfont-ce5cdffe6c589a6dc6bd2c482c718486ff5fb416ab01740750db325179e58654.eot create mode 100644 public/assets/etelkalightitalic-webfont-d1fb9621d40ef45104078a4a5b98ce4cba00872cf8ac56e299cf1397c146cac3.woff create mode 100644 public/assets/etelkalightitalic-webfont-dd5353c2af4ea63e1d0e99ec5f1f85162cee0c4dd0a3840260a2606eefc3e517.svg create mode 100644 public/assets/favicon-309e00e2f78f9a2b042abc2806a8a4ed9cf6bb5d3f00ccc0985b1308bfd86c49.ico create mode 100644 public/assets/id_card-ea506a49b25c8de4e68e786d90f5ec5defb6c8e895b90f2f129815f5e550fe8e.gif create mode 100644 public/assets/infotexb-webfont-0dda72e34d0d0ced7693b55ed08acc60fb1a9036afd7736e432ac3f22f2e6fdf.svg create mode 100644 public/assets/infotexb-webfont-1951e43e1d9ab99b0d4998abba4aab34f3e68b337be90800db517e4a8d27d001.eot create mode 100644 public/assets/infotexb-webfont-8da32e6db23c39390c55dd5ea8949714757fddba516c5db65e72867504493fbc.woff create mode 100644 public/assets/infotexb-webfont-c0737d1e2edff50645e201bf99f68f2313502ee2bdeb2e56435ee24721baf5cd.ttf create mode 100644 public/assets/infotexm-webfont-0b52ef10620b8cb7289dc809aac67826d5031e6ab040194fdb7365dc83e95557.svg create mode 100644 public/assets/infotexm-webfont-1d244d27a4ec4c1a5f98c82966faa26e7855c4292c730429477003b6dab5c08b.ttf create mode 100644 public/assets/infotexm-webfont-74df99faeb66d8b02966b8884b860af03c359ed41d348ddb813dbcc3c460eb26.eot create mode 100644 public/assets/infotexm-webfont-872b5ab4e0b7de6655a52f137a3c99f1e7941fa91ff21a56550f2039834ee9d0.woff create mode 100644 public/assets/jquery-ui/ui-bg_flat_0_aaaaaa_40x100-9a8492a580bf85d3e98ae8861fbd45567e5a1f83eeafcf9574da0399d5f602ab.png create mode 100644 public/assets/jquery-ui/ui-bg_flat_75_ffffff_40x100-39ab7ccd9f4e82579da78a9241265df288d8eb65dbbd7cf48aed2d0129887df5.png create mode 100644 public/assets/jquery-ui/ui-bg_glass_55_fbf9ee_1x400-691597e8a40a891ea94d3589976ecfc33e6145c49422443b00ac2b5a0022964c.png create mode 100644 public/assets/jquery-ui/ui-bg_glass_65_ffffff_1x400-f0e6cd91b837d5c5644d026e5ffeccd907953317cd5c0f689901733afda260b2.png create mode 100644 public/assets/jquery-ui/ui-bg_glass_75_dadada_1x400-c108f5cbf2dd9ec07a26530695ddd95e1664597ce6c056ae44c162cc2e28cec4.png create mode 100644 public/assets/jquery-ui/ui-bg_glass_75_e6e6e6_1x400-ddf5dd4e0ef2b185e8bb0af7b6e90ebe74a84384cb4700658e76e754c8bfe550.png create mode 100644 public/assets/jquery-ui/ui-bg_glass_95_fef1ec_1x400-f6f1c1bedf1a0f37cfef81d12f5f012869d1ee7c984775a569827a1784d34f5c.png create mode 100644 public/assets/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100-54270656df079c4da5182629a080fc633b6f84b87985eb016d25a560e2c38d4a.png create mode 100644 public/assets/jquery-ui/ui-icons_222222_256x240-57adb0d65f4e91dacfee975d9574422bee7486c8a182d60133728c672f2cdbbc.png create mode 100644 public/assets/jquery-ui/ui-icons_2e83ff_256x240-20f8c6667afc48aa433ee9eb6d8a0584bdbd6b4a4a9091ff1e6b3adb31e63bd9.png create mode 100644 public/assets/jquery-ui/ui-icons_454545_256x240-07460e843c3e59aaadbb34231e699e856a2980753c7a47b66447da5d9f93fb7f.png create mode 100644 public/assets/jquery-ui/ui-icons_888888_256x240-ea2e29625de3463465e93b002b065f5833e05b97f7a052b1c141e754d62e1a8b.png create mode 100644 public/assets/jquery-ui/ui-icons_cd0a0a_256x240-1e32c6dbf5d3fd342f27a78aa881550d6412aa207f48468724a6a15402b6041b.png create mode 100644 public/assets/lhv-4d09d3126a05df392b73c54fa9b1eb605798c2e9bd361cf44500f73038832030.png delete mode 100644 public/assets/manifest-9b19037852267cfe2c60a6bd51485d3f.json create mode 100644 public/assets/mid-275543ecea377debe1ac892470f3aea4f7e7f0f9089fc0fbea4de410742e5239.gif create mode 100644 public/assets/nordea-75c938c7436e0c8316f056be8df8acd0e8b16e09790e78f78da96d9f8633ef3b.png create mode 100644 public/assets/registrant-manifest-5042d2816e8cc296ed38449bd684b7df1f827e9aebbade86995e44f0320de332.css create mode 100644 public/assets/registrant-manifest-9fb37a048a37bc0d0dfa7530d548c0dd38c4ee2ad067fe962c06cc7e94d2ddac.js create mode 100644 public/assets/registrant-manifest-f9e9d795de4f7dabe387365fd329c1cb24da923bd357988c120cc5710230cc48.js create mode 100644 public/assets/registrar-manifest-413fda057832b25dee9d45f5f07b29ac369fc85f51ecd9e7bc2cdefa5297b4f3.js create mode 100644 public/assets/registrar-manifest-91e58ca08340b0a7792aaec3980fdb8595319d31ea237173494e505a5b3751c6.js create mode 100644 public/assets/registrar-manifest-bffa75923fdda878303aa17da806fcf43415a599a19bf0022cf3f9e9d6140a05.css create mode 100644 public/assets/registrar/application-978b21a99ae3caabb8a9e301dccaa0b93f86cc789a9595158c98ee51393b8cb9.js create mode 100644 public/assets/registrar/bg-alpha-9ac45a6b3c13dd5c5cf1b5d18c6f24a537dd2e4598238527d232a3e2ea5b5947.png create mode 100644 public/assets/registrar/bg-development-0b993e22410c7952394ac19ce3b41b722a97b93138a9a002091e1e5226d29bf5.png create mode 100644 public/assets/registrar/bg-staging-6276f8c00911bc99f301f919e408ae3ef726c7378324ac55fd5d378ba3a4dc2d.png create mode 100644 public/assets/registrar/favicon-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.ico create mode 100644 public/assets/seb-9c9d943014cc4ee706244893cd8a2c4a8a7cc97bfbdef6a66e22c72f33d5f25e.png create mode 100644 public/assets/select2-d6b5d8d83dbc18fb8d77c8761d331cd9e5123c9684950bab0406e98a24ac5ae8.png create mode 100644 public/assets/select2-spinner-f6ecff617ec2ba7f559e6f535cad9b70a3f91120737535dab4d4548a6c83576c.gif create mode 100644 public/assets/select2x2-6fe28d687dc0ed4d96016238c608ba1e7198c9c9accfa0b360b78018b9fb9bc2.png create mode 100644 public/assets/shared/pdf-f6e83972424c39d3f7ebe55fb4679237496990148efb3bb9a2a10a2c070be1a7.css create mode 100644 public/assets/staging-6276f8c00911bc99f301f919e408ae3ef726c7378324ac55fd5d378ba3a4dc2d.png create mode 100644 public/assets/swed-2cf45729062cf5fa634247ba372c579c97f382e5cc43fa111219077e7473fdbb.png create mode 100644 public/assets/test-9ac45a6b3c13dd5c5cf1b5d18c6f24a537dd2e4598238527d232a3e2ea5b5947.png create mode 100644 spec/fabricators/pricelist_fabricator.rb create mode 100644 spec/models/pricelist_spec.rb diff --git a/Gemfile b/Gemfile index 7a947bb76..2fbb63eb0 100644 --- a/Gemfile +++ b/Gemfile @@ -38,6 +38,7 @@ gem 'nprogress-rails', '~> 0.1.6.7' # visual loader gem 'html5_validators', '~> 1.2.0' # model requements now automatically on html form gem 'coderay', '~> 1.1.0' # xml console visualize gem 'select2-rails', '~> 3.5.9.3' # for autocomplete +gem 'bootstrap-datepicker-rails', '~> 1.3.1.1' # datepicker # rights gem 'devise', '~> 3.4.1' # authenitcation @@ -50,6 +51,7 @@ gem 'jbuilder', '~> 2.2.6' # json api # registry specfic gem 'simpleidn', '~> 0.0.5' # For punycode gem 'isikukood' # for EE-id validation +gem 'money-rails', '~> 1.3.0' # Money helpers # deploy gem 'whenever', '~> 0.9.4', require: false diff --git a/Gemfile.lock b/Gemfile.lock index dbc311d2e..e4b506df3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -76,18 +76,18 @@ GEM thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) addressable (2.3.8) - akami (1.3.0) + akami (1.3.1) gyoku (>= 0.4.0) nokogiri arel (6.0.0) ast (2.0.0) astrolabe (1.3.0) parser (>= 2.2.0.pre.3, < 3.0) - autodoc (0.4.4) + autodoc (0.5.0) actionpack activesupport (>= 3.0.0) rspec - autoprefixer-rails (5.1.11) + autoprefixer-rails (5.2.0) execjs json axiom-types (0.1.1) @@ -101,6 +101,8 @@ GEM rack (>= 0.9.0) binding_of_caller (0.7.2) debug_inspector (>= 0.0.1) + bootstrap-datepicker-rails (1.3.1.1) + railties (>= 3.0) bootstrap-sass (3.3.4.1) autoprefixer-rails (>= 5.0.0.1) sass (>= 3.2.19) @@ -116,9 +118,9 @@ GEM slim (>= 1.3.6, < 3.0) terminal-table (~> 1.4) builder (3.2.2) - bullet (4.14.4) + bullet (4.14.7) activesupport (>= 3.0.0) - uniform_notifier (>= 1.6.0) + uniform_notifier (~> 1.9.0) bundler-audit (0.3.1) bundler (~> 1.2) thor (~> 0.18) @@ -142,7 +144,7 @@ GEM coffee-script (2.4.1) coffee-script-source execjs - coffee-script-source (1.9.1) + coffee-script-source (1.9.1.1) countries (0.10.0) currencies (~> 0.4.2) crack (0.4.2) @@ -174,13 +176,13 @@ GEM builder (~> 3.2) equalizer (0.0.11) erubis (2.7.0) - execjs (2.5.0) + execjs (2.5.2) fabrication (2.12.2) faker (1.3.0) i18n (~> 0.5) fastercsv (1.5.5) ffi (1.9.8) - figaro (1.1.0) + figaro (1.1.1) thor (~> 0.14) flay (2.4.0) ruby_parser (~> 3.0) @@ -189,7 +191,7 @@ GEM ruby_parser (~> 3.1, > 3.1.0) sexp_processor (~> 4.4) formatador (0.2.5) - globalid (0.3.3) + globalid (0.3.5) activesupport (>= 4.1.0) grape (0.10.1) activesupport @@ -225,11 +227,10 @@ GEM haml (>= 4.0.6, < 5.0) html2haml (>= 1.0.1) railties (>= 4.0.1) - hashie (3.4.1) + hashie (3.4.2) hashie-forbidden_attributes (0.1.1) hashie (>= 3.0) highline (1.6.21) - hike (1.2.3) hitimes (1.2.2) hpricot (0.8.6) html5_validators (1.2.0) @@ -239,20 +240,20 @@ GEM i18n (0.7.0) ice_nine (0.11.1) isikukood (0.1.2) - iso8601 (0.8.5) - jbuilder (2.2.12) + iso8601 (0.8.6) + jbuilder (2.2.16) activesupport (>= 3.0.0, < 5) multi_json (~> 1.2) jquery-rails (4.0.3) rails-dom-testing (~> 1.0) railties (>= 4.2.0) thor (>= 0.14, < 2.0) - jquery-ui-rails (5.0.3) + jquery-ui-rails (5.0.5) railties (>= 3.2.16) jquery-validation-rails (1.13.1) railties (>= 3.2, < 5.0) thor (~> 0.14) - json (1.8.2) + json (1.8.3) kaminari (0.16.3) actionpack (>= 3.0.0) activesupport (>= 3.0.0) @@ -265,7 +266,7 @@ GEM celluloid (~> 0.16.0) rb-fsevent (>= 0.9.3) rb-inotify (>= 0.9) - loofah (2.0.1) + loofah (2.0.2) nokogiri (>= 1.5.9) lumberjack (1.0.9) macaddr (1.7.1) @@ -273,25 +274,34 @@ GEM mail (2.6.3) mime-types (>= 1.16, < 3) method_source (0.8.2) - mime-types (2.4.3) + mime-types (2.6.1) mina (0.3.4) open4 (~> 1.3.4) rake mini_portile (0.6.2) - minitest (5.5.1) + minitest (5.7.0) + monetize (1.1.0) + money (~> 6.5.0) + money (6.5.1) + i18n (>= 0.6.4, <= 0.7.0) + money-rails (1.3.0) + activesupport (>= 3.0) + monetize (~> 1.1.0) + money (~> 6.5.0) + railties (>= 3.0) multi_json (1.11.0) multi_xml (0.5.5) newrelic_rpm (3.9.9.275) nokogiri (1.6.6.2) mini_portile (~> 0.6.0) - nori (2.5.0) + nori (2.6.0) nprogress-rails (0.1.6.7) open4 (1.3.4) orm_adapter (0.5.0) - parser (2.2.0.3) + parser (2.2.2.5) ast (>= 1.1, < 3.0) pdfkit (0.6.2) - pg (0.18.1) + pg (0.18.2) phantomjs (1.9.7.1) phantomjs-binaries (1.9.2.4) sys-uname (= 0.9.0) @@ -307,7 +317,7 @@ GEM coderay (~> 1.1.0) method_source (~> 0.8.1) slop (~> 3.4) - rack (1.6.0) + rack (1.6.1) rack-accept (0.4.5) rack (>= 0.4) rack-mount (0.8.3) @@ -350,7 +360,7 @@ GEM activesupport (>= 3.0) i18n polyamorous (~> 1.1) - rb-fsevent (0.9.4) + rb-fsevent (0.9.5) rb-inotify (0.9.5) ffi (>= 0.5.0) rdoc (4.2.0) @@ -390,7 +400,7 @@ GEM rainbow (>= 1.99.1, < 3.0) ruby-progressbar (~> 1.4) ruby-progressbar (1.7.5) - ruby2ruby (2.1.3) + ruby2ruby (2.1.4) ruby_parser (~> 3.1) sexp_processor (~> 4.0) ruby_parser (3.5.0) @@ -403,7 +413,7 @@ GEM ruby2ruby (>= 2.1.1, < 3.0) virtus (~> 1.0) safe_yaml (1.0.4) - sass (3.4.13) + sass (3.4.14) sass-rails (5.0.3) railties (>= 4.0.0, < 5.0) sass (~> 3.1) @@ -425,7 +435,7 @@ GEM select2-rails (3.5.9.3) thor (~> 0.14) selectize-rails (0.12.1) - sexp_processor (4.5.0) + sexp_processor (4.6.0) shoulda-matchers (2.6.2) activesupport (>= 3.0.0) simplecov (0.9.2) @@ -438,15 +448,12 @@ GEM temple (~> 0.6.9) tilt (>= 1.3.3, < 2.1) slop (3.6.0) - spring (1.3.4) + spring (1.3.6) spring-commands-rspec (1.0.4) spring (>= 0.9.1) - sprockets (2.12.3) - hike (~> 1.2) - multi_json (~> 1.0) + sprockets (3.2.0) rack (~> 1.0) - tilt (~> 1.1, != 1.3.0) - sprockets-rails (2.2.4) + sprockets-rails (2.3.1) actionpack (>= 3.0) activesupport (>= 3.0) sprockets (>= 2.8, < 4.0) @@ -472,12 +479,12 @@ GEM uglifier (2.7.1) execjs (>= 0.3.0) json (>= 1.8.0) - unicorn (4.8.3) + unicorn (4.9.0) kgio (~> 2.6) rack raindrops (~> 0.7) - uniform_notifier (1.8.0) - uuid (2.3.7) + uniform_notifier (1.9.0) + uuid (2.3.8) macaddr (~> 1.0) uuidtools (2.1.5) virtus (1.0.5) @@ -506,6 +513,7 @@ DEPENDENCIES autodoc better_errors (~> 2.0.0) binding_of_caller (~> 0.7.2) + bootstrap-datepicker-rails (~> 1.3.1.1) bootstrap-sass (~> 3.3.4.1) brakeman (~> 2.6.2) bullet (~> 4.14.4) @@ -543,6 +551,7 @@ DEPENDENCIES kaminari (~> 0.16.3) launchy (~> 2.4.3) mina (~> 0.3.1) + money-rails (~> 1.3.0) newrelic_rpm (~> 3.9.9.275) nokogiri (~> 1.6.6.2) nprogress-rails (~> 0.1.6.7) diff --git a/app/assets/javascripts/admin-manifest.coffee b/app/assets/javascripts/admin-manifest.coffee index 883a2aadc..df3af084c 100644 --- a/app/assets/javascripts/admin-manifest.coffee +++ b/app/assets/javascripts/admin-manifest.coffee @@ -2,8 +2,6 @@ #= require jquery_ujs #= require turbolinks #= require bootstrap-sprockets -#= require nprogress -#= require nprogress-turbolinks #= require typeahead.bundle.min #= require admin/autocomplete #= require jquery.nested_attributes @@ -12,6 +10,3 @@ #= require jquery-ui/datepicker #= require shared/general #= require admin/application - -NProgress.configure - showSpinner: false diff --git a/app/assets/javascripts/admin/application.coffee b/app/assets/javascripts/admin/application.coffee index 89c4a752d..523876df7 100644 --- a/app/assets/javascripts/admin/application.coffee +++ b/app/assets/javascripts/admin/application.coffee @@ -1,12 +1,16 @@ -ready = -> +$(document).on 'page:change', -> $('.selectize').selectize({ allowEmptyOption: true - }); + }) + + $('.js-datepicker').datepicker({ + showAnim: "", + autoclose: true, + dateFormat: "dd.mm.yy", + changeMonth: true, + changeYear: true + }) # client side validate all forms $('form').each -> $(this).validate() - - -$(document).ready(ready) -$(document).on('page:load', ready) diff --git a/app/assets/javascripts/registrar/application.coffee b/app/assets/javascripts/registrar/application.coffee index 91a5ce7fa..9dda64de6 100644 --- a/app/assets/javascripts/registrar/application.coffee +++ b/app/assets/javascripts/registrar/application.coffee @@ -1,4 +1,4 @@ -$(document).on 'ready page:load', -> +$(document).on 'page:change', -> # client side validate all forms $('form').each -> $(this).validate() diff --git a/app/assets/javascripts/shared/general.coffee b/app/assets/javascripts/shared/general.coffee index bbcbc970e..db6e371c3 100644 --- a/app/assets/javascripts/shared/general.coffee +++ b/app/assets/javascripts/shared/general.coffee @@ -1,3 +1,9 @@ +#= require nprogress +#= require nprogress-turbolinks + +NProgress.configure + showSpinner: false + @flash_notice = (msg) -> $('#flash').find('div').removeClass('bg-danger') $('#flash').find('div').addClass('bg-success') @@ -10,7 +16,7 @@ $('#flash').find('div').html(msg) $('#flash').show() -$(document).on 'ready page:load', -> +$(document).on 'page:change', -> today = new Date() tomorrow = new Date(today) tomorrow.setDate(today.getDate() + 1) @@ -20,7 +26,8 @@ $(document).on 'ready page:load', -> maxDate: tomorrow ) - $('.js-combobox').select2 - width: "100%" - selectOnBlur: true - dropdownAutoWidth: if self==top then true else false + if $('.js-combobox').length + $('.js-combobox').select2 + width: "100%" + selectOnBlur: true + dropdownAutoWidth: if self==top then true else false diff --git a/app/assets/stylesheets/admin-manifest.sass b/app/assets/stylesheets/admin-manifest.sass index c906f8c70..b93e65268 100644 --- a/app/assets/stylesheets/admin-manifest.sass +++ b/app/assets/stylesheets/admin-manifest.sass @@ -1,5 +1,6 @@ //= require 'shared/general-manifest' //= require 'admin/admin-bootstrap' +//= require 'jquery-ui/datepicker' @import shared/fonts @import shared/general @import nprogress @@ -7,4 +8,5 @@ @import typeaheadjs @import selectize @import selectize.bootstrap3 +// @import bootstrap-datepicker3 @import admin/admin diff --git a/app/controllers/admin/pricelists_controller.rb b/app/controllers/admin/pricelists_controller.rb new file mode 100644 index 000000000..a0fa2c010 --- /dev/null +++ b/app/controllers/admin/pricelists_controller.rb @@ -0,0 +1,44 @@ +class Admin::PricelistsController < AdminController + load_and_authorize_resource + before_action :set_pricelist, only: [:show, :edit, :update] + + def index + @q = Pricelist.search(params[:q]) + @pricelists = @q.result.page(params[:page]) + end + + def new + @pricelist = Pricelist.new + end + + def edit + end + + def create + @pricelist = Pricelist.new(pricelist_params) + + if @pricelist.save + redirect_to admin_pricelists_url + else + render 'new' + end + end + + def update + if @pricelist.update_attributes(pricelist_params) + redirect_to admin_pricelists_url + else + render 'edit' + end + end + + private + + def set_pricelist + @pricelist = Pricelist.find(params[:id]) + end + + def pricelist_params + params.require(:pricelist).permit(:category, :name, :duration, :price, :valid_from, :valid_to) + end +end diff --git a/app/models/ability.rb b/app/models/ability.rb index 79dcb991a..3c641fdcb 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -107,6 +107,7 @@ class Ability can :manage, Setting can :manage, ZonefileSetting can :manage, DomainVersion + can :manage, Pricelist can :manage, User can :manage, ApiUser can :manage, AdminUser diff --git a/app/models/pricelist.rb b/app/models/pricelist.rb new file mode 100644 index 000000000..12a567a95 --- /dev/null +++ b/app/models/pricelist.rb @@ -0,0 +1,16 @@ +class Pricelist < ActiveRecord::Base + include Versions # version/pricelist_version.rb + + monetize :price_cents + + validates :price_cents, :price_currency, :valid_from, :category, presence: true + + CATEGORIES = %w(ee com.ee fie.ee pri.ee med.ee) + DURATIONS = %w(1year 2years 3years) + + after_initialize :init_values + def init_values + return unless new_record? + self.valid_from = Time.zone.now.beginning_of_year + end +end diff --git a/app/models/version/pricelist_version.rb b/app/models/version/pricelist_version.rb new file mode 100644 index 000000000..cd86f6064 --- /dev/null +++ b/app/models/version/pricelist_version.rb @@ -0,0 +1,4 @@ +class PricelistVersion < PaperTrail::Version + self.table_name = :log_pricelists + self.sequence_name = :log_pricelists_id_seq +end diff --git a/app/views/admin/pricelists/_form.haml b/app/views/admin/pricelists/_form.haml new file mode 100644 index 000000000..0472b0267 --- /dev/null +++ b/app/views/admin/pricelists/_form.haml @@ -0,0 +1,33 @@ += form_for([:admin, @pricelist], multipart: true) do |f| + = render 'shared/errors', object: f.object + + .row + .col-md-6 + .form-group + = f.label :category, t(:category) + = f.select(:category, Pricelist::CATEGORIES, {}, { class: 'form-control' }) + .form-group + = f.label :name + = f.text_field(:name, class: 'form-control') + .form-group + = f.label :duration + = f.select(:duration, Pricelist::DURATIONS, {}, { class: 'form-control' }) + .form-group + = f.label :price + .input-group + = f.text_field(:price, class: 'form-control') + %span.input-group-addon= Money.default_currency + .form-group.input-daterange + = f.label :valid_from, t(:valid) + .input-group + = f.text_field(:valid_from, value: f.object.valid_from.try(:to_s, :dshort), + class: 'form-control js-datepicker') + %span.input-group-addon - + = f.text_field(:valid_to, value: f.object.valid_to.try(:to_s, :dshort), + class: 'form-control js-datepicker') + + %hr + .row + .col-md-12.text-right + = button_tag(t(:save), class: 'btn btn-primary') + diff --git a/app/views/admin/pricelists/edit.haml b/app/views/admin/pricelists/edit.haml new file mode 100644 index 000000000..329f7979b --- /dev/null +++ b/app/views/admin/pricelists/edit.haml @@ -0,0 +1,6 @@ +.row + .col-sm-6 + %h2.text-center-xs= "#{t(:edit)}: #{@pricelist.name}" + +%hr += render 'form' diff --git a/app/views/admin/pricelists/index.haml b/app/views/admin/pricelists/index.haml new file mode 100644 index 000000000..2116222c8 --- /dev/null +++ b/app/views/admin/pricelists/index.haml @@ -0,0 +1,57 @@ +.row + .col-sm-6 + %h2.text-center-xs= t(:pricelists) + .col-sm-6 + %h2.text-right.text-center-xs + = link_to(t(:new), new_admin_pricelist_path, class: 'btn btn-primary') + +%hr +-# .row + -# .col-md-12 + -# = form_tag admin_pricelists_path, html: { class: 'form-horizontal' } do + -# .col-md-11 + -# .form-group + -# = search_field_tag :name_cont, class: 'form-control' + -# .col-md-1.text-right.text-center-xs + -# .form-group + -# %button.btn.btn-primary + -#   + -# %span.glyphicon.glyphicon-search + -#   + +%hr +.row + .col-md-12 + .table-responsive + %table.table.table-hover.table-bordered.table-condensed + %thead + %tr + %th{class: 'col-xs-2'} + = sort_link(@q, 'category', t(:category)) + %th{class: 'col-xs-2'} + = sort_link(@q, 'duration', t(:duration)) + %th{class: 'col-xs-2'} + = sort_link(@q, 'name', t(:name)) + %th{class: 'col-xs-2'} + = sort_link(@q, 'price', t(:price)) + %th{class: 'col-xs-2'} + = sort_link(@q, 'valid_from', t(:valid_from)) + %th{class: 'col-xs-2'} + = sort_link(@q, 'valid_to', t(:valid_to)) + %th{class: 'col-xs-2'} + = t(:action) + + %tbody + - @pricelists.each do |pricelist| + %tr + %td= pricelist.category + %td= pricelist.duration + %td= pricelist.name + %td= pricelist.price + %td= l(pricelist.valid_from, format: :ydate) + %td= l(pricelist.valid_to, format: :ydate) + %td= link_to(t(:edit), edit_admin_pricelist_path(pricelist), class: 'btn btn-xs btn-primary') + +.row + .col-md-12 + = paginate @pricelists diff --git a/app/views/admin/pricelists/new.haml b/app/views/admin/pricelists/new.haml new file mode 100644 index 000000000..fb56f2aaf --- /dev/null +++ b/app/views/admin/pricelists/new.haml @@ -0,0 +1,3 @@ +%h2= t(:new_price) +%hr += render 'form' diff --git a/app/views/layouts/admin/application.haml b/app/views/layouts/admin/application.haml index 016ebd3b7..917e9b635 100644 --- a/app/views/layouts/admin/application.haml +++ b/app/views/layouts/admin/application.haml @@ -51,12 +51,17 @@ %li= link_to t(:admin_users), admin_admin_users_path %li.divider %li.dropdown-header= t(:billing) + - if can? :view, Pricelist + %li= link_to t(:pricelists), admin_pricelists_path %li= link_to t(:bank_statements), admin_bank_statements_path %li= link_to t(:invoices), admin_invoices_path %li.divider %li.dropdown-header= t(:system) %li= link_to t(:settings), admin_settings_path %li= link_to t(:zonefile), admin_zonefile_settings_path + %li.dropdown-header= t(:system) + %li= link_to t(:settings), admin_settings_path + %li= link_to t(:zonefile), admin_zonefile_settings_path -# %li= link_to t(:domains_history), admin_domain_versions_path %li= link_to t(:epp_logs), admin_epp_logs_path %li= link_to t(:repp_logs), admin_repp_logs_path diff --git a/config/initializers/datetime.rb b/config/initializers/datetime.rb new file mode 100644 index 000000000..cf4f747e2 --- /dev/null +++ b/config/initializers/datetime.rb @@ -0,0 +1,3 @@ +# Some handy day formats +Date::DATE_FORMATS[:dshort] = "%d.%m.%Y" +Time::DATE_FORMATS[:dshort] = "%d.%m.%Y" diff --git a/config/initializers/money.rb b/config/initializers/money.rb new file mode 100644 index 000000000..30df8eadf --- /dev/null +++ b/config/initializers/money.rb @@ -0,0 +1,70 @@ +# encoding : utf-8 + +MoneyRails.configure do |config| + + # To set the default currency + # + config.default_currency = :eur + + # Set default bank object + # + # Example: + # config.default_bank = EuCentralBank.new + + # Add exchange rates to current money bank object. + # (The conversion rate refers to one direction only) + # + # Example: + # config.add_rate "USD", "CAD", 1.24515 + # config.add_rate "CAD", "USD", 0.803115 + + # To handle the inclusion of validations for monetized fields + # The default value is true + # + # config.include_validations = true + + # Default ActiveRecord migration configuration values for columns: + # + # config.amount_column = { prefix: '', # column name prefix + # postfix: '_cents', # column name postfix + # column_name: nil, # full column name (overrides prefix, postfix and accessor name) + # type: :integer, # column type + # present: true, # column will be created + # null: false, # other options will be treated as column options + # default: 0 + # } + # + # config.currency_column = { prefix: '', + # postfix: '_currency', + # column_name: nil, + # type: :string, + # present: true, + # null: false, + # default: 'USD' + # } + + # Register a custom currency + # + # Example: + # config.register_currency = { + # :priority => 1, + # :iso_code => "EU4", + # :name => "Euro with subunit of 4 digits", + # :symbol => "€", + # :symbol_first => true, + # :subunit => "Subcent", + # :subunit_to_unit => 10000, + # :thousands_separator => ".", + # :decimal_mark => "," + # } + + # Set default money format globally. + # Default value is nil meaning "ignore this option". + # Example: + # + # config.default_format = { + # :no_cents_if_whole => nil, + # :symbol => nil, + # :sign_before_symbol => nil + # } +end diff --git a/config/initializers/relaxed_i18n.rb b/config/initializers/relaxed_i18n.rb new file mode 100644 index 000000000..ca9d0c034 --- /dev/null +++ b/config/initializers/relaxed_i18n.rb @@ -0,0 +1,11 @@ +# Don't raise error when nil +# http://stackoverflow.com/questions/9467034/rails-i18n-how-to-handle-case-of-a-nil-date-being-passed-ie-lnil +module I18n + class << self + alias_method :original_localize, :localize + + def localize object, options = {} + object.present? ? original_localize(object, options) : '' + end + end +end diff --git a/config/locales/en.yml b/config/locales/en.yml index 9203bf6ff..2d4f14d66 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -24,7 +24,7 @@ en: short: "%d.%m.%y, %H:%M" date: "%d.%m.%y" date_long: "%d. %B %Y" - + ydate: "%Y.%m.%d" date: formats: year_and_month: "%Y %B" @@ -812,3 +812,7 @@ en: webserver_client_cert_directive_should_be_required: 'Webserver client cert directive should be required' tech: Tech contact admin: Admin contact + pricelists: Pricelists + new_pricelist: New Pricelist + valid: Valid + category: Zone diff --git a/config/routes.rb b/config/routes.rb index c8d4e0b0e..f0b0dabeb 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -154,14 +154,11 @@ Rails.application.routes.draw do # ADMIN ROUTES namespace :admin do resources :keyrelays - resources :zonefiles - resources :zonefile_settings - resources :legal_documents - resources :keyrelays + resources :pricelists resources :bank_statements do post 'bind_invoices', on: :member diff --git a/db/migrate/20150305092921_add_pricelist.rb b/db/migrate/20150305092921_add_pricelist.rb new file mode 100644 index 000000000..fc327a579 --- /dev/null +++ b/db/migrate/20150305092921_add_pricelist.rb @@ -0,0 +1,25 @@ +class AddPricelist < ActiveRecord::Migration + def change + create_table :pricelists do |t| + t.string :name + t.string :category + t.monetize :price + t.datetime :valid_from + t.datetime :valid_to + t.string :creator_str + t.string :updator_str + t.timestamps null: false + end + + create_table :log_pricelists do |t| + t.string :item_type, null: false + t.integer :item_id, null: false + t.string :event, null: false + t.string :whodunnit + t.json :object + t.json :object_changes + t.datetime :created_at + t.string :session + end + end +end diff --git a/db/migrate/20150603141549_add_decimal_type.rb b/db/migrate/20150603141549_add_decimal_type.rb new file mode 100644 index 000000000..64b166287 --- /dev/null +++ b/db/migrate/20150603141549_add_decimal_type.rb @@ -0,0 +1,16 @@ +class AddDecimalType < ActiveRecord::Migration + def change + { + 'account_activities': ['sum'], + 'accounts': ['balance'], + 'bank_transactions': ['sum'], + 'banklink_transactions': ['vk_amount'], + 'invoice_items': ['price'], + 'invoices': ['vat_prc', 'sum_cache'] + }.each do |table, cols| + cols.each do |col| + change_column table, col, :decimal, precision: 8, scale: 2 + end + end + end +end diff --git a/db/migrate/20150603211318_change_price_to_decimal.rb b/db/migrate/20150603211318_change_price_to_decimal.rb new file mode 100644 index 000000000..1937a642c --- /dev/null +++ b/db/migrate/20150603211318_change_price_to_decimal.rb @@ -0,0 +1,5 @@ +class ChangePriceToDecimal < ActiveRecord::Migration + def change + change_column :pricelists, :price_cents, :decimal, precision: 8, scale: 2 + end +end diff --git a/db/migrate/20150603212659_add_duration_to_pricelist.rb b/db/migrate/20150603212659_add_duration_to_pricelist.rb new file mode 100644 index 000000000..05342c6cd --- /dev/null +++ b/db/migrate/20150603212659_add_duration_to_pricelist.rb @@ -0,0 +1,5 @@ +class AddDurationToPricelist < ActiveRecord::Migration + def change + add_column :pricelists, :duration, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index 3f0236f3d..48396524a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20150525075550) do +ActiveRecord::Schema.define(version: 20150603212659) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -19,7 +19,7 @@ ActiveRecord::Schema.define(version: 20150525075550) do create_table "account_activities", force: :cascade do |t| t.integer "account_id" t.integer "invoice_id" - t.decimal "sum" + t.decimal "sum", precision: 10, scale: 2 t.string "currency" t.integer "bank_transaction_id" t.datetime "created_at" @@ -36,7 +36,7 @@ ActiveRecord::Schema.define(version: 20150525075550) do create_table "accounts", force: :cascade do |t| t.integer "registrar_id" t.string "account_type" - t.decimal "balance", default: 0.0, null: false + t.decimal "balance", precision: 10, scale: 2, default: 0.0, null: false t.datetime "created_at" t.datetime "updated_at" t.string "currency" @@ -98,7 +98,7 @@ ActiveRecord::Schema.define(version: 20150525075550) do t.string "buyer_name" t.string "document_no" t.string "description" - t.decimal "sum" + t.decimal "sum", precision: 10, scale: 2 t.string "reference_no" t.datetime "paid_at" t.datetime "created_at" @@ -114,7 +114,7 @@ ActiveRecord::Schema.define(version: 20150525075550) do t.string "vk_rec_id" t.string "vk_stamp" t.string "vk_t_no" - t.decimal "vk_amount" + t.decimal "vk_amount", precision: 10, scale: 2 t.string "vk_curr" t.string "vk_rec_acc" t.string "vk_rec_name" @@ -328,10 +328,10 @@ ActiveRecord::Schema.define(version: 20150525075550) do create_table "invoice_items", force: :cascade do |t| t.integer "invoice_id" - t.string "description", null: false + t.string "description", null: false t.string "unit" t.integer "amount" - t.decimal "price" + t.decimal "price", precision: 10, scale: 2 t.datetime "created_at" t.datetime "updated_at" t.string "creator_str" @@ -341,20 +341,20 @@ ActiveRecord::Schema.define(version: 20150525075550) do add_index "invoice_items", ["invoice_id"], name: "index_invoice_items_on_invoice_id", using: :btree create_table "invoices", force: :cascade do |t| - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.string "invoice_type", null: false - t.datetime "due_date", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.string "invoice_type", null: false + t.datetime "due_date", null: false t.string "payment_term" - t.string "currency", null: false + t.string "currency", null: false t.string "description" t.string "reference_no" - t.decimal "vat_prc", null: false + t.decimal "vat_prc", precision: 10, scale: 2, null: false t.datetime "paid_at" t.integer "seller_id" - t.string "seller_name", null: false + t.string "seller_name", null: false t.string "seller_reg_no" - t.string "seller_iban", null: false + t.string "seller_iban", null: false t.string "seller_bank" t.string "seller_swift" t.string "seller_vat_no" @@ -368,7 +368,7 @@ ActiveRecord::Schema.define(version: 20150525075550) do t.string "seller_email" t.string "seller_contact_name" t.integer "buyer_id" - t.string "buyer_name", null: false + t.string "buyer_name", null: false t.string "buyer_reg_no" t.string "buyer_country_code" t.string "buyer_state" @@ -382,7 +382,7 @@ ActiveRecord::Schema.define(version: 20150525075550) do t.string "updator_str" t.integer "number" t.datetime "cancelled_at" - t.decimal "sum_cache" + t.decimal "sum_cache", precision: 10, scale: 2 end add_index "invoices", ["buyer_id"], name: "index_invoices_on_buyer_id", using: :btree @@ -741,6 +741,17 @@ ActiveRecord::Schema.define(version: 20150525075550) do add_index "log_nameservers", ["item_type", "item_id"], name: "index_log_nameservers_on_item_type_and_item_id", using: :btree add_index "log_nameservers", ["whodunnit"], name: "index_log_nameservers_on_whodunnit", using: :btree + create_table "log_pricelists", force: :cascade do |t| + t.string "item_type", null: false + t.integer "item_id", null: false + t.string "event", null: false + t.string "whodunnit" + t.json "object" + t.json "object_changes" + t.datetime "created_at" + t.string "session" + end + create_table "log_registrars", force: :cascade do |t| t.string "item_type", null: false t.integer "item_id", null: false @@ -874,6 +885,20 @@ ActiveRecord::Schema.define(version: 20150525075550) do add_index "people", ["email"], name: "index_people_on_email", unique: true, using: :btree add_index "people", ["reset_password_token"], name: "index_people_on_reset_password_token", unique: true, using: :btree + create_table "pricelists", force: :cascade do |t| + t.string "name" + t.string "category" + t.decimal "price_cents", precision: 8, scale: 2, default: 0.0, null: false + t.string "price_currency", default: "EUR", null: false + t.datetime "valid_from" + t.datetime "valid_to" + t.string "creator_str" + t.string "updator_str" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.string "duration" + end + create_table "registrant_verifications", force: :cascade do |t| t.string "domain_name" t.string "verification_token" @@ -957,7 +982,7 @@ ActiveRecord::Schema.define(version: 20150525075550) do t.text "crt" t.string "type" t.string "registrant_ident" - t.string "encrypted_password", default: "", null: false + t.string "encrypted_password", default: "" t.datetime "remember_created_at" t.integer "failed_attempts", default: 0, null: false t.datetime "locked_at" diff --git a/public/assets/.sprockets-manifest-777146d8396a4f217ac1f34291da0a5d.json b/public/assets/.sprockets-manifest-777146d8396a4f217ac1f34291da0a5d.json new file mode 100644 index 000000000..34f77ab8b --- /dev/null +++ b/public/assets/.sprockets-manifest-777146d8396a4f217ac1f34291da0a5d.json @@ -0,0 +1 @@ +{"files":{"alpha-0ca6e1b4c58bac2800936ad023a1488e.png":{"logical_path":"alpha.png","mtime":"2015-02-03T16:52:02+02:00","size":7089,"digest":"0ca6e1b4c58bac2800936ad023a1488e"},"development-0107cbd9200b233a56713bdb4643eace.png":{"logical_path":"development.png","mtime":"2015-02-03T16:52:02+02:00","size":14496,"digest":"0107cbd9200b233a56713bdb4643eace"},"staging-5b1d74e291541214457521dd0c14f6a2.png":{"logical_path":"staging.png","mtime":"2015-02-03T16:52:02+02:00","size":12294,"digest":"5b1d74e291541214457521dd0c14f6a2"},"application-805c69cec6ea75185028b7e45efee5fd.js":{"logical_path":"application.js","mtime":"2015-02-03T16:52:02+02:00","size":233509,"digest":"805c69cec6ea75185028b7e45efee5fd"},"application-993e676726143d5ead2f8840bc8894a7.css":{"logical_path":"application.css","mtime":"2015-02-03T16:52:02+02:00","size":135007,"digest":"993e676726143d5ead2f8840bc8894a7"},"login-3546bfbfa6594a3ce191938a5e6d3066.css":{"logical_path":"login.css","mtime":"2015-02-03T16:52:02+02:00","size":137,"digest":"3546bfbfa6594a3ce191938a5e6d3066"},"bootstrap/glyphicons-halflings-regular-24b5f16fe2187cf515fc8a2babbd55da.eot":{"logical_path":"bootstrap/glyphicons-halflings-regular.eot","mtime":"2015-01-08T16:11:23+02:00","size":20335,"digest":"24b5f16fe2187cf515fc8a2babbd55da"},"bootstrap/glyphicons-halflings-regular-d0edb6d81c8df5ba60f44915ba986aa7.svg":{"logical_path":"bootstrap/glyphicons-halflings-regular.svg","mtime":"2015-01-08T16:11:23+02:00","size":62926,"digest":"d0edb6d81c8df5ba60f44915ba986aa7"},"bootstrap/glyphicons-halflings-regular-10c46f3d2df6eb4ec8b4f4a06a937419.ttf":{"logical_path":"bootstrap/glyphicons-halflings-regular.ttf","mtime":"2015-01-08T16:11:23+02:00","size":41280,"digest":"10c46f3d2df6eb4ec8b4f4a06a937419"},"bootstrap/glyphicons-halflings-regular-57dc61ddc965a9efa6e70b9d954a55fe.woff":{"logical_path":"bootstrap/glyphicons-halflings-regular.woff","mtime":"2015-01-08T16:11:23+02:00","size":23320,"digest":"57dc61ddc965a9efa6e70b9d954a55fe"},"alpha-618f9900becef747a5a6952555e4b204.png":{"logical_path":"alpha.png","mtime":"2015-04-30T12:07:54+03:00","size":7089,"digest":"618f9900becef747a5a6952555e4b204"},"bg-f28afe55c5adffacf7b5452a6cae24c3.jpg":{"logical_path":"bg.jpg","mtime":"2015-03-30T11:10:52+03:00","size":69058,"digest":"f28afe55c5adffacf7b5452a6cae24c3"},"danske-3020934087f46316fd6ec2658033dab5.png":{"logical_path":"danske.png","mtime":"2015-04-14T17:25:27+03:00","size":1130,"digest":"3020934087f46316fd6ec2658033dab5"},"development-5cc9f2ddbd534e45e24078e203c7e01f.png":{"logical_path":"development.png","mtime":"2015-04-30T12:07:54+03:00","size":14496,"digest":"5cc9f2ddbd534e45e24078e203c7e01f"},"eis-logo-et-11d876ece7adf9172797bb174a79317f.png":{"logical_path":"eis-logo-et.png","mtime":"2015-04-14T17:25:27+03:00","size":1440,"digest":"11d876ece7adf9172797bb174a79317f"},"favicon-13c3c3833d62abd4e04a44220c8b1429.ico":{"logical_path":"favicon.ico","mtime":"2015-03-30T11:10:52+03:00","size":1150,"digest":"13c3c3833d62abd4e04a44220c8b1429"},"id_card-0024eba53ea49330fdcbda89bb371814.gif":{"logical_path":"id_card.gif","mtime":"2015-03-30T11:10:52+03:00","size":564,"digest":"0024eba53ea49330fdcbda89bb371814"},"lhv-011c68ea1402f858ba75e8a4050b5ca6.png":{"logical_path":"lhv.png","mtime":"2015-04-14T17:25:27+03:00","size":3417,"digest":"011c68ea1402f858ba75e8a4050b5ca6"},"mid-ed85374018c6f0889935b0682fa84642.gif":{"logical_path":"mid.gif","mtime":"2015-03-30T11:10:52+03:00","size":1566,"digest":"ed85374018c6f0889935b0682fa84642"},"nordea-2b47cfab5337c041fe49db79a1f69979.png":{"logical_path":"nordea.png","mtime":"2015-04-14T17:25:27+03:00","size":1181,"digest":"2b47cfab5337c041fe49db79a1f69979"},"registrar/bg-alpha-618f9900becef747a5a6952555e4b204.png":{"logical_path":"registrar/bg-alpha.png","mtime":"2015-04-30T12:07:54+03:00","size":7089,"digest":"618f9900becef747a5a6952555e4b204"},"registrar/bg-development-5cc9f2ddbd534e45e24078e203c7e01f.png":{"logical_path":"registrar/bg-development.png","mtime":"2015-04-13T10:48:57+03:00","size":14496,"digest":"5cc9f2ddbd534e45e24078e203c7e01f"},"registrar/bg-staging-26368b05bc701be6495a3cdad27593a3.png":{"logical_path":"registrar/bg-staging.png","mtime":"2015-04-30T12:07:54+03:00","size":12294,"digest":"26368b05bc701be6495a3cdad27593a3"},"registrar/favicon-7015acab0e7ee10d673b8d49cecfb54b.ico":{"logical_path":"registrar/favicon.ico","mtime":"2015-04-30T12:07:30+03:00","size":0,"digest":"7015acab0e7ee10d673b8d49cecfb54b"},"seb-7fc1e0a48b927e8afc437addf852fcc1.png":{"logical_path":"seb.png","mtime":"2015-04-14T17:25:27+03:00","size":2439,"digest":"7fc1e0a48b927e8afc437addf852fcc1"},"staging-26368b05bc701be6495a3cdad27593a3.png":{"logical_path":"staging.png","mtime":"2015-04-30T12:07:54+03:00","size":12294,"digest":"26368b05bc701be6495a3cdad27593a3"},"swed-4119c3462bfd9d768705f978bd0b8725.png":{"logical_path":"swed.png","mtime":"2015-04-14T17:25:27+03:00","size":1521,"digest":"4119c3462bfd9d768705f978bd0b8725"},"test-618f9900becef747a5a6952555e4b204.png":{"logical_path":"test.png","mtime":"2015-04-30T12:07:54+03:00","size":7089,"digest":"618f9900becef747a5a6952555e4b204"},"admin-manifest-81244fbcb2941dbf2b9cc6e7ad480060.js":{"logical_path":"admin-manifest.js","mtime":"2015-05-12T12:16:20+03:00","size":712371,"digest":"81244fbcb2941dbf2b9cc6e7ad480060"},"admin/application-187f808aa45da0795ce5d28f48e7970f.js":{"logical_path":"admin/application.js","mtime":"2015-04-20T16:41:29+03:00","size":289,"digest":"187f808aa45da0795ce5d28f48e7970f"},"registrant-manifest-1f30b53c57759af9a47c8a210e17c8a5.js":{"logical_path":"registrant-manifest.js","mtime":"2015-05-13T11:52:45+03:00","size":718718,"digest":"1f30b53c57759af9a47c8a210e17c8a5"},"registrar-manifest-1f30b53c57759af9a47c8a210e17c8a5.js":{"logical_path":"registrar-manifest.js","mtime":"2015-05-12T12:15:59+03:00","size":718718,"digest":"1f30b53c57759af9a47c8a210e17c8a5"},"registrar/application-80cb2a349e82ee26e038257ddce8642e.js":{"logical_path":"registrar/application.js","mtime":"2015-04-20T17:13:49+03:00","size":1084,"digest":"80cb2a349e82ee26e038257ddce8642e"},"admin-manifest-fceb6abfb995546297fca8180e251217.css":{"logical_path":"admin-manifest.css","mtime":"2015-05-15T09:58:24+03:00","size":393721,"digest":"fceb6abfb995546297fca8180e251217"},"registrant-manifest-3938764b3ef6aea7b5bc22b4969e7af0.css":{"logical_path":"registrant-manifest.css","mtime":"2015-05-19T11:21:41+03:00","size":474001,"digest":"3938764b3ef6aea7b5bc22b4969e7af0"},"registrar-manifest-622732055d28fda17d8cbfc1d00d4806.css":{"logical_path":"registrar-manifest.css","mtime":"2015-05-15T09:58:24+03:00","size":457291,"digest":"622732055d28fda17d8cbfc1d00d4806"},"shared/pdf-677bbf85989f907b03f3fca7c62b33dc.css":{"logical_path":"shared/pdf.css","mtime":"2015-05-12T12:15:59+03:00","size":351670,"digest":"677bbf85989f907b03f3fca7c62b33dc"},"etelkalight-webfont-ed13fffbfc3953a032a4c3671b8467cd.eot":{"logical_path":"etelkalight-webfont.eot","mtime":"2015-03-30T11:10:52+03:00","size":23109,"digest":"ed13fffbfc3953a032a4c3671b8467cd"},"etelkalight-webfont-7b1d2e2c635f04f583288fdf8f18deee.svg":{"logical_path":"etelkalight-webfont.svg","mtime":"2015-03-30T11:10:52+03:00","size":64768,"digest":"7b1d2e2c635f04f583288fdf8f18deee"},"etelkalight-webfont-0683b4d48ff1eee498ca094abbcecd6d.ttf":{"logical_path":"etelkalight-webfont.ttf","mtime":"2015-03-30T11:10:52+03:00","size":49748,"digest":"0683b4d48ff1eee498ca094abbcecd6d"},"etelkalight-webfont-72416c26c35dbd939703bfb1826ff2a8.woff":{"logical_path":"etelkalight-webfont.woff","mtime":"2015-03-30T11:10:52+03:00","size":26204,"digest":"72416c26c35dbd939703bfb1826ff2a8"},"etelkalightbold-webfont-dc2ee659eefb7289fe8f2ff6baa37445.eot":{"logical_path":"etelkalightbold-webfont.eot","mtime":"2015-03-30T11:10:52+03:00","size":23707,"digest":"dc2ee659eefb7289fe8f2ff6baa37445"},"etelkalightbold-webfont-bca484302b45333b390c3123614d2c1c.svg":{"logical_path":"etelkalightbold-webfont.svg","mtime":"2015-03-30T11:10:52+03:00","size":62829,"digest":"bca484302b45333b390c3123614d2c1c"},"etelkalightbold-webfont-821515fbb533b1135c8631936ffa5531.ttf":{"logical_path":"etelkalightbold-webfont.ttf","mtime":"2015-03-30T11:10:52+03:00","size":51172,"digest":"821515fbb533b1135c8631936ffa5531"},"etelkalightbold-webfont-0139c92ba83bc3743826c80b554bbda3.woff":{"logical_path":"etelkalightbold-webfont.woff","mtime":"2015-03-30T11:10:52+03:00","size":26956,"digest":"0139c92ba83bc3743826c80b554bbda3"},"etelkalightitalic-webfont-b12af89a8321d427c136e5ce99409b07.eot":{"logical_path":"etelkalightitalic-webfont.eot","mtime":"2015-03-30T11:10:52+03:00","size":26426,"digest":"b12af89a8321d427c136e5ce99409b07"},"etelkalightitalic-webfont-776d2dfa86c8119fd8cb78bfe57b1e47.svg":{"logical_path":"etelkalightitalic-webfont.svg","mtime":"2015-03-30T11:10:52+03:00","size":69857,"digest":"776d2dfa86c8119fd8cb78bfe57b1e47"},"etelkalightitalic-webfont-e9186197cc519611c84d7ac71ebbd2e5.ttf":{"logical_path":"etelkalightitalic-webfont.ttf","mtime":"2015-03-30T11:10:52+03:00","size":57040,"digest":"e9186197cc519611c84d7ac71ebbd2e5"},"etelkalightitalic-webfont-a8908cc11ab9d731b6227c8b2fb05b73.woff":{"logical_path":"etelkalightitalic-webfont.woff","mtime":"2015-03-30T11:10:52+03:00","size":29884,"digest":"a8908cc11ab9d731b6227c8b2fb05b73"},"infotexb-webfont-fb2fa9574b264dcc30a2050682bd52f4.eot":{"logical_path":"infotexb-webfont.eot","mtime":"2015-03-30T11:10:52+03:00","size":23124,"digest":"fb2fa9574b264dcc30a2050682bd52f4"},"infotexb-webfont-150d985c9a021dbe3bd6053372609118.svg":{"logical_path":"infotexb-webfont.svg","mtime":"2015-03-30T11:10:52+03:00","size":90188,"digest":"150d985c9a021dbe3bd6053372609118"},"infotexb-webfont-e738890c5d7af17632fa84dc9b42c747.ttf":{"logical_path":"infotexb-webfont.ttf","mtime":"2015-03-30T11:10:52+03:00","size":47396,"digest":"e738890c5d7af17632fa84dc9b42c747"},"infotexb-webfont-f112d498df4b5d3710bd40cc9e5781af.woff":{"logical_path":"infotexb-webfont.woff","mtime":"2015-03-30T11:10:52+03:00","size":26228,"digest":"f112d498df4b5d3710bd40cc9e5781af"},"infotexm-webfont-ca44c79c0f8d796b0b7d9b104abe4e17.eot":{"logical_path":"infotexm-webfont.eot","mtime":"2015-03-30T11:10:52+03:00","size":23273,"digest":"ca44c79c0f8d796b0b7d9b104abe4e17"},"infotexm-webfont-2c8e72831d6e851d286ff79afe28aa55.svg":{"logical_path":"infotexm-webfont.svg","mtime":"2015-03-30T11:10:52+03:00","size":90423,"digest":"2c8e72831d6e851d286ff79afe28aa55"},"infotexm-webfont-896292b5af614c36a26744815159b625.ttf":{"logical_path":"infotexm-webfont.ttf","mtime":"2015-03-30T11:10:52+03:00","size":47484,"digest":"896292b5af614c36a26744815159b625"},"infotexm-webfont-3549a25386cf49af60d984b80006547f.woff":{"logical_path":"infotexm-webfont.woff","mtime":"2015-03-30T11:10:52+03:00","size":26492,"digest":"3549a25386cf49af60d984b80006547f"},"jquery-ui/ui-bg_flat_0_aaaaaa_40x100-9f7b44c685ec9eeb173a8f920d4d29b8.png":{"logical_path":"jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png","mtime":"2015-05-12T11:03:08+03:00","size":180,"digest":"9f7b44c685ec9eeb173a8f920d4d29b8"},"jquery-ui/ui-bg_flat_75_ffffff_40x100-5549a64944ea9f0740ca1db910ff0f5a.png":{"logical_path":"jquery-ui/ui-bg_flat_75_ffffff_40x100.png","mtime":"2015-05-12T11:03:08+03:00","size":178,"digest":"5549a64944ea9f0740ca1db910ff0f5a"},"jquery-ui/ui-bg_glass_55_fbf9ee_1x400-625ab42eb971ac89ac7e5b803eb7305e.png":{"logical_path":"jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png","mtime":"2015-05-12T11:03:08+03:00","size":120,"digest":"625ab42eb971ac89ac7e5b803eb7305e"},"jquery-ui/ui-bg_glass_65_ffffff_1x400-2825332fdb02e2521bc6deae40a6433a.png":{"logical_path":"jquery-ui/ui-bg_glass_65_ffffff_1x400.png","mtime":"2015-05-12T11:03:08+03:00","size":105,"digest":"2825332fdb02e2521bc6deae40a6433a"},"jquery-ui/ui-bg_glass_75_dadada_1x400-01ce21eb3d2c3a1b0fd4c5ceef0a700e.png":{"logical_path":"jquery-ui/ui-bg_glass_75_dadada_1x400.png","mtime":"2015-05-12T11:03:08+03:00","size":111,"digest":"01ce21eb3d2c3a1b0fd4c5ceef0a700e"},"jquery-ui/ui-bg_glass_75_e6e6e6_1x400-bc720eb664eeca79d17081070f350db8.png":{"logical_path":"jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png","mtime":"2015-05-12T11:03:08+03:00","size":110,"digest":"bc720eb664eeca79d17081070f350db8"},"jquery-ui/ui-bg_glass_95_fef1ec_1x400-f7a402ed795ce14d3c63a12fa6abecfe.png":{"logical_path":"jquery-ui/ui-bg_glass_95_fef1ec_1x400.png","mtime":"2015-05-12T11:03:08+03:00","size":119,"digest":"f7a402ed795ce14d3c63a12fa6abecfe"},"jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100-cdbb4656bf485d74602d7cf42621b5c2.png":{"logical_path":"jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png","mtime":"2015-05-12T11:03:08+03:00","size":101,"digest":"cdbb4656bf485d74602d7cf42621b5c2"},"jquery-ui/ui-icons_222222_256x240-2be68d0c61b276fc37fca0dd0e093296.png":{"logical_path":"jquery-ui/ui-icons_222222_256x240.png","mtime":"2015-05-12T11:03:08+03:00","size":4369,"digest":"2be68d0c61b276fc37fca0dd0e093296"},"jquery-ui/ui-icons_2e83ff_256x240-16b100c149fe2aadb6285e316eee35fa.png":{"logical_path":"jquery-ui/ui-icons_2e83ff_256x240.png","mtime":"2015-05-12T11:03:08+03:00","size":4369,"digest":"16b100c149fe2aadb6285e316eee35fa"},"jquery-ui/ui-icons_454545_256x240-1c1d485b55c1bded3366a8cfb0a0daed.png":{"logical_path":"jquery-ui/ui-icons_454545_256x240.png","mtime":"2015-05-12T11:03:08+03:00","size":4369,"digest":"1c1d485b55c1bded3366a8cfb0a0daed"},"jquery-ui/ui-icons_888888_256x240-ed6c5b2703aba1e014120179504ddabb.png":{"logical_path":"jquery-ui/ui-icons_888888_256x240.png","mtime":"2015-05-12T11:03:08+03:00","size":4369,"digest":"ed6c5b2703aba1e014120179504ddabb"},"jquery-ui/ui-icons_cd0a0a_256x240-c5af554b5a90164d2c67a06d5cb9454a.png":{"logical_path":"jquery-ui/ui-icons_cd0a0a_256x240.png","mtime":"2015-05-12T11:03:08+03:00","size":4369,"digest":"c5af554b5a90164d2c67a06d5cb9454a"},"select2-spinner-0cb5e73ef8c0669f910bf9ce3d62c516.gif":{"logical_path":"select2-spinner.gif","mtime":"2015-05-12T11:05:57+03:00","size":1849,"digest":"0cb5e73ef8c0669f910bf9ce3d62c516"},"select2-7a233a3c56945673c6c1ebcbd205c1fd.png":{"logical_path":"select2.png","mtime":"2015-05-12T11:05:57+03:00","size":613,"digest":"7a233a3c56945673c6c1ebcbd205c1fd"},"select2x2-bdabb22531f7e0e104a602d47cb71e30.png":{"logical_path":"select2x2.png","mtime":"2015-05-12T11:05:57+03:00","size":845,"digest":"bdabb22531f7e0e104a602d47cb71e30"},"bootstrap/glyphicons-halflings-regular-8c7e3a81fcfddd99c12fab80bba274c2.eot":{"logical_path":"bootstrap/glyphicons-halflings-regular.eot","mtime":"2015-05-12T12:15:59+03:00","size":20127,"digest":"8c7e3a81fcfddd99c12fab80bba274c2"},"bootstrap/glyphicons-halflings-regular-9aa4cf766b78fa283fc5c65c92bb8de1.svg":{"logical_path":"bootstrap/glyphicons-halflings-regular.svg","mtime":"2015-05-12T12:15:59+03:00","size":108738,"digest":"9aa4cf766b78fa283fc5c65c92bb8de1"},"bootstrap/glyphicons-halflings-regular-3f35157d0fc792b1f0ee8dd82cc8aaf8.ttf":{"logical_path":"bootstrap/glyphicons-halflings-regular.ttf","mtime":"2015-05-12T12:15:59+03:00","size":45404,"digest":"3f35157d0fc792b1f0ee8dd82cc8aaf8"},"bootstrap/glyphicons-halflings-regular-b501c6ba89bfe0d9af27981a19c9e346.woff":{"logical_path":"bootstrap/glyphicons-halflings-regular.woff","mtime":"2015-05-12T12:15:59+03:00","size":23424,"digest":"b501c6ba89bfe0d9af27981a19c9e346"},"bootstrap/glyphicons-halflings-regular-cde521afb829f829e7fcfabc094dc659.woff2":{"logical_path":"bootstrap/glyphicons-halflings-regular.woff2","mtime":"2015-05-12T12:15:59+03:00","size":18028,"digest":"cde521afb829f829e7fcfabc094dc659"},"alpha-84eeebabe667b9b75b7b050eeee16eeb.png":{"logical_path":"alpha.png","mtime":"2015-04-30T12:07:54+03:00","size":7089,"digest":"84eeebabe667b9b75b7b050eeee16eeb"},"bg-841fa022251d290635254dbbc3097daf.jpg":{"logical_path":"bg.jpg","mtime":"2015-04-30T12:07:54+03:00","size":69058,"digest":"841fa022251d290635254dbbc3097daf"},"danske-fa2a4fcd35b59cb1255f800185840276.png":{"logical_path":"danske.png","mtime":"2015-04-30T12:07:54+03:00","size":1130,"digest":"fa2a4fcd35b59cb1255f800185840276"},"development-d24ec62be8078e61a3c656b83fa8fe9b.png":{"logical_path":"development.png","mtime":"2015-04-30T12:07:54+03:00","size":14496,"digest":"d24ec62be8078e61a3c656b83fa8fe9b"},"eis-logo-et-fd17d396191bd4e667509390f1922892.png":{"logical_path":"eis-logo-et.png","mtime":"2015-04-30T12:07:54+03:00","size":1440,"digest":"fd17d396191bd4e667509390f1922892"},"favicon-2435a1ee9e9dfca133abbca02619c8d9.ico":{"logical_path":"favicon.ico","mtime":"2015-04-30T12:07:54+03:00","size":1150,"digest":"2435a1ee9e9dfca133abbca02619c8d9"},"id_card-9926a89250d68222f45669dd7984c90d.gif":{"logical_path":"id_card.gif","mtime":"2015-04-30T12:07:54+03:00","size":564,"digest":"9926a89250d68222f45669dd7984c90d"},"lhv-5114f0bee2d3c70c47403f17e9d287e8.png":{"logical_path":"lhv.png","mtime":"2015-04-30T12:07:54+03:00","size":3417,"digest":"5114f0bee2d3c70c47403f17e9d287e8"},"mid-79dabc481b840aac303e5e1cc7dde8c6.gif":{"logical_path":"mid.gif","mtime":"2015-04-30T12:07:54+03:00","size":1566,"digest":"79dabc481b840aac303e5e1cc7dde8c6"},"nordea-87b186d736c3c93685086c13ee0a9f21.png":{"logical_path":"nordea.png","mtime":"2015-04-30T12:07:54+03:00","size":1181,"digest":"87b186d736c3c93685086c13ee0a9f21"},"registrar/bg-alpha-84eeebabe667b9b75b7b050eeee16eeb.png":{"logical_path":"registrar/bg-alpha.png","mtime":"2015-04-30T12:07:54+03:00","size":7089,"digest":"84eeebabe667b9b75b7b050eeee16eeb"},"registrar/bg-development-d24ec62be8078e61a3c656b83fa8fe9b.png":{"logical_path":"registrar/bg-development.png","mtime":"2015-04-30T12:07:54+03:00","size":14496,"digest":"d24ec62be8078e61a3c656b83fa8fe9b"},"registrar/bg-staging-672bd21ed4b9cb3245ea44f3a2629bf0.png":{"logical_path":"registrar/bg-staging.png","mtime":"2015-04-30T12:07:54+03:00","size":12294,"digest":"672bd21ed4b9cb3245ea44f3a2629bf0"},"registrar/favicon-c06dd6a542ea15147e6794e03643f87c.ico":{"logical_path":"registrar/favicon.ico","mtime":"2015-04-30T12:07:30+03:00","size":0,"digest":"c06dd6a542ea15147e6794e03643f87c"},"seb-b1fa76625f31c3f4d0b84d450dd4c383.png":{"logical_path":"seb.png","mtime":"2015-04-30T12:07:54+03:00","size":2439,"digest":"b1fa76625f31c3f4d0b84d450dd4c383"},"staging-672bd21ed4b9cb3245ea44f3a2629bf0.png":{"logical_path":"staging.png","mtime":"2015-04-30T12:07:54+03:00","size":12294,"digest":"672bd21ed4b9cb3245ea44f3a2629bf0"},"swed-b9efaf29f99a76ecc01b03803be7a88d.png":{"logical_path":"swed.png","mtime":"2015-04-30T12:07:54+03:00","size":1521,"digest":"b9efaf29f99a76ecc01b03803be7a88d"},"test-84eeebabe667b9b75b7b050eeee16eeb.png":{"logical_path":"test.png","mtime":"2015-04-30T12:07:54+03:00","size":7089,"digest":"84eeebabe667b9b75b7b050eeee16eeb"},"admin-manifest-6e6fcf039a6b92e085d41d339fec5884.js":{"logical_path":"admin-manifest.js","mtime":"2015-05-12T12:16:20+03:00","size":315161,"digest":"6e6fcf039a6b92e085d41d339fec5884"},"admin/application-6a07f91041ad3f20e1b1d5458955fc91.js":{"logical_path":"admin/application.js","mtime":"2015-04-30T12:07:30+03:00","size":206,"digest":"6a07f91041ad3f20e1b1d5458955fc91"},"registrant-manifest-d9d0c29fad78a10a0c792a1715edd3d5.js":{"logical_path":"registrant-manifest.js","mtime":"2015-05-25T12:59:47+03:00","size":303041,"digest":"d9d0c29fad78a10a0c792a1715edd3d5"},"registrar-manifest-d9d0c29fad78a10a0c792a1715edd3d5.js":{"logical_path":"registrar-manifest.js","mtime":"2015-05-12T12:15:59+03:00","size":303041,"digest":"d9d0c29fad78a10a0c792a1715edd3d5"},"registrar/application-becf26b2259105fe47b50b2d3c80138c.js":{"logical_path":"registrar/application.js","mtime":"2015-04-30T12:07:30+03:00","size":808,"digest":"becf26b2259105fe47b50b2d3c80138c"},"admin-manifest-701249458372f015ab0b876ee831bbb1.css":{"logical_path":"admin-manifest.css","mtime":"2015-05-25T12:59:47+03:00","size":146503,"digest":"701249458372f015ab0b876ee831bbb1"},"registrant-manifest-9d06c365b21295408f3ccd37298efffb.css":{"logical_path":"registrant-manifest.css","mtime":"2015-05-25T12:59:47+03:00","size":190071,"digest":"9d06c365b21295408f3ccd37298efffb"},"registrar-manifest-71050a07965f499a5e7d6973a1389b1b.css":{"logical_path":"registrar-manifest.css","mtime":"2015-05-25T12:59:47+03:00","size":189886,"digest":"71050a07965f499a5e7d6973a1389b1b"},"shared/pdf-ef071ef29698676d4abe7c36b565496f.css":{"logical_path":"shared/pdf.css","mtime":"2015-05-12T12:15:59+03:00","size":119980,"digest":"ef071ef29698676d4abe7c36b565496f"},"etelkalight-webfont-c0ee4f9aa372df807632e0bb0d0c5f44.eot":{"logical_path":"etelkalight-webfont.eot","mtime":"2015-03-30T11:10:52+03:00","size":23109,"digest":"c0ee4f9aa372df807632e0bb0d0c5f44"},"etelkalight-webfont-49e7a69f10dc2fb97fb75b4b600540fd.svg":{"logical_path":"etelkalight-webfont.svg","mtime":"2015-03-30T11:10:52+03:00","size":64768,"digest":"49e7a69f10dc2fb97fb75b4b600540fd"},"etelkalight-webfont-732b53bcc82de772b8fad153dba9e8ce.ttf":{"logical_path":"etelkalight-webfont.ttf","mtime":"2015-03-30T11:10:52+03:00","size":49748,"digest":"732b53bcc82de772b8fad153dba9e8ce"},"etelkalight-webfont-635643de24bc05d241849d2d94360411.woff":{"logical_path":"etelkalight-webfont.woff","mtime":"2015-03-30T11:10:52+03:00","size":26204,"digest":"635643de24bc05d241849d2d94360411"},"etelkalightbold-webfont-058000aa817bc9d3d3277193322e1571.eot":{"logical_path":"etelkalightbold-webfont.eot","mtime":"2015-03-30T11:10:52+03:00","size":23707,"digest":"058000aa817bc9d3d3277193322e1571"},"etelkalightbold-webfont-2228057f2bc65595b1aa6bb978fdc024.svg":{"logical_path":"etelkalightbold-webfont.svg","mtime":"2015-03-30T11:10:52+03:00","size":62829,"digest":"2228057f2bc65595b1aa6bb978fdc024"},"etelkalightbold-webfont-a4d498eb3e03127324d20d39402b737c.ttf":{"logical_path":"etelkalightbold-webfont.ttf","mtime":"2015-03-30T11:10:52+03:00","size":51172,"digest":"a4d498eb3e03127324d20d39402b737c"},"etelkalightbold-webfont-ca5e2f470b251e7706b3fd222f6c452b.woff":{"logical_path":"etelkalightbold-webfont.woff","mtime":"2015-03-30T11:10:52+03:00","size":26956,"digest":"ca5e2f470b251e7706b3fd222f6c452b"},"etelkalightitalic-webfont-0331b1a437f2be83bd1def92da31a621.eot":{"logical_path":"etelkalightitalic-webfont.eot","mtime":"2015-03-30T11:10:52+03:00","size":26426,"digest":"0331b1a437f2be83bd1def92da31a621"},"etelkalightitalic-webfont-c86d64373f2e5820cb9c7579744d862b.svg":{"logical_path":"etelkalightitalic-webfont.svg","mtime":"2015-03-30T11:10:52+03:00","size":69857,"digest":"c86d64373f2e5820cb9c7579744d862b"},"etelkalightitalic-webfont-eeab2ccc14859e347751e00b94c7468d.ttf":{"logical_path":"etelkalightitalic-webfont.ttf","mtime":"2015-03-30T11:10:52+03:00","size":57040,"digest":"eeab2ccc14859e347751e00b94c7468d"},"etelkalightitalic-webfont-11ecd04590d9c57d06af4fd7f1f200a1.woff":{"logical_path":"etelkalightitalic-webfont.woff","mtime":"2015-03-30T11:10:52+03:00","size":29884,"digest":"11ecd04590d9c57d06af4fd7f1f200a1"},"infotexb-webfont-8d885bee87d1477c6db0b59dd52fe896.eot":{"logical_path":"infotexb-webfont.eot","mtime":"2015-03-30T11:10:52+03:00","size":23124,"digest":"8d885bee87d1477c6db0b59dd52fe896"},"infotexb-webfont-0c710174eb8081bb570dcfc25caafa10.svg":{"logical_path":"infotexb-webfont.svg","mtime":"2015-03-30T11:10:52+03:00","size":90188,"digest":"0c710174eb8081bb570dcfc25caafa10"},"infotexb-webfont-e7609a76f035df9ef1161dea0cafc89c.ttf":{"logical_path":"infotexb-webfont.ttf","mtime":"2015-03-30T11:10:52+03:00","size":47396,"digest":"e7609a76f035df9ef1161dea0cafc89c"},"infotexb-webfont-71f78522d2a2c5a623ae6793fc18368e.woff":{"logical_path":"infotexb-webfont.woff","mtime":"2015-03-30T11:10:52+03:00","size":26228,"digest":"71f78522d2a2c5a623ae6793fc18368e"},"infotexm-webfont-b01aba1c16b6c69c24fd81580c4b252f.eot":{"logical_path":"infotexm-webfont.eot","mtime":"2015-03-30T11:10:52+03:00","size":23273,"digest":"b01aba1c16b6c69c24fd81580c4b252f"},"infotexm-webfont-78ba702105f983e7c3ffe8c71e5e2b73.svg":{"logical_path":"infotexm-webfont.svg","mtime":"2015-03-30T11:10:52+03:00","size":90423,"digest":"78ba702105f983e7c3ffe8c71e5e2b73"},"infotexm-webfont-5869797caccf6ab4d73938faf6b8588e.ttf":{"logical_path":"infotexm-webfont.ttf","mtime":"2015-03-30T11:10:52+03:00","size":47484,"digest":"5869797caccf6ab4d73938faf6b8588e"},"infotexm-webfont-3ce446804ee12a1aa4f0d3c67a2ec305.woff":{"logical_path":"infotexm-webfont.woff","mtime":"2015-03-30T11:10:52+03:00","size":26492,"digest":"3ce446804ee12a1aa4f0d3c67a2ec305"},"jquery-ui/ui-bg_flat_0_aaaaaa_40x100-f91ca0f37189f2d27c249be3a9b5fe8e.png":{"logical_path":"jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png","mtime":"2015-05-12T11:03:08+03:00","size":180,"digest":"f91ca0f37189f2d27c249be3a9b5fe8e"},"jquery-ui/ui-bg_flat_75_ffffff_40x100-bb0051ba9b6d87ef3f9425d05cb2f7f8.png":{"logical_path":"jquery-ui/ui-bg_flat_75_ffffff_40x100.png","mtime":"2015-05-12T11:03:08+03:00","size":178,"digest":"bb0051ba9b6d87ef3f9425d05cb2f7f8"},"jquery-ui/ui-bg_glass_55_fbf9ee_1x400-0fe7774bbb53c9db24dcf4dc4514db77.png":{"logical_path":"jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png","mtime":"2015-05-12T11:03:08+03:00","size":120,"digest":"0fe7774bbb53c9db24dcf4dc4514db77"},"jquery-ui/ui-bg_glass_65_ffffff_1x400-e50e57d636a734253c3c0b4cb4cef861.png":{"logical_path":"jquery-ui/ui-bg_glass_65_ffffff_1x400.png","mtime":"2015-05-12T11:03:08+03:00","size":105,"digest":"e50e57d636a734253c3c0b4cb4cef861"},"jquery-ui/ui-bg_glass_75_dadada_1x400-3f7ec278f71651df1dda0e20ac460483.png":{"logical_path":"jquery-ui/ui-bg_glass_75_dadada_1x400.png","mtime":"2015-05-12T11:03:08+03:00","size":111,"digest":"3f7ec278f71651df1dda0e20ac460483"},"jquery-ui/ui-bg_glass_75_e6e6e6_1x400-6522c988bbf45e6b805b6ed4adf70079.png":{"logical_path":"jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png","mtime":"2015-05-12T11:03:08+03:00","size":110,"digest":"6522c988bbf45e6b805b6ed4adf70079"},"jquery-ui/ui-bg_glass_95_fef1ec_1x400-addad4f60fb36fc37c7ed9ff916af31e.png":{"logical_path":"jquery-ui/ui-bg_glass_95_fef1ec_1x400.png","mtime":"2015-05-12T11:03:08+03:00","size":119,"digest":"addad4f60fb36fc37c7ed9ff916af31e"},"jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100-7984ba05f627254dfdbdde97f999f415.png":{"logical_path":"jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png","mtime":"2015-05-12T11:03:08+03:00","size":101,"digest":"7984ba05f627254dfdbdde97f999f415"},"jquery-ui/ui-icons_222222_256x240-6e4c17c299f104a87548b204269bb9e5.png":{"logical_path":"jquery-ui/ui-icons_222222_256x240.png","mtime":"2015-05-12T11:03:08+03:00","size":4369,"digest":"6e4c17c299f104a87548b204269bb9e5"},"jquery-ui/ui-icons_2e83ff_256x240-7cb6a4006575c000b8f91394a06b8391.png":{"logical_path":"jquery-ui/ui-icons_2e83ff_256x240.png","mtime":"2015-05-12T11:03:08+03:00","size":4369,"digest":"7cb6a4006575c000b8f91394a06b8391"},"jquery-ui/ui-icons_454545_256x240-3440f505d562d5b095634dcb3dcf7a07.png":{"logical_path":"jquery-ui/ui-icons_454545_256x240.png","mtime":"2015-05-12T11:03:08+03:00","size":4369,"digest":"3440f505d562d5b095634dcb3dcf7a07"},"jquery-ui/ui-icons_888888_256x240-cb45397ab08fadc7e4f1314b5d84e26c.png":{"logical_path":"jquery-ui/ui-icons_888888_256x240.png","mtime":"2015-05-12T11:03:08+03:00","size":4369,"digest":"cb45397ab08fadc7e4f1314b5d84e26c"},"jquery-ui/ui-icons_cd0a0a_256x240-b4b9d1b4f2de973c609e28b87fbfbd4d.png":{"logical_path":"jquery-ui/ui-icons_cd0a0a_256x240.png","mtime":"2015-05-12T11:03:08+03:00","size":4369,"digest":"b4b9d1b4f2de973c609e28b87fbfbd4d"},"select2-spinner-a9ae0d27964eb30e49e3396bb2b4bd3d.gif":{"logical_path":"select2-spinner.gif","mtime":"2015-05-12T11:05:57+03:00","size":1849,"digest":"a9ae0d27964eb30e49e3396bb2b4bd3d"},"select2-4a19e1b1ee05dc61304a3f9cf69ed866.png":{"logical_path":"select2.png","mtime":"2015-05-12T11:05:57+03:00","size":613,"digest":"4a19e1b1ee05dc61304a3f9cf69ed866"},"select2x2-3bb6e2999d204bf36746d95f840e6b51.png":{"logical_path":"select2x2.png","mtime":"2015-05-12T11:05:57+03:00","size":845,"digest":"3bb6e2999d204bf36746d95f840e6b51"},"bootstrap/glyphicons-halflings-regular-050f85c5fbaa79689431c2a1f211fe2a.eot":{"logical_path":"bootstrap/glyphicons-halflings-regular.eot","mtime":"2015-05-12T12:15:59+03:00","size":20127,"digest":"050f85c5fbaa79689431c2a1f211fe2a"},"bootstrap/glyphicons-halflings-regular-3c8f142df5ab3046bbeb3c3310ae4fa9.svg":{"logical_path":"bootstrap/glyphicons-halflings-regular.svg","mtime":"2015-05-12T12:15:59+03:00","size":108738,"digest":"3c8f142df5ab3046bbeb3c3310ae4fa9"},"bootstrap/glyphicons-halflings-regular-632d47971ce98f67252b59ec394cb688.ttf":{"logical_path":"bootstrap/glyphicons-halflings-regular.ttf","mtime":"2015-05-12T12:15:59+03:00","size":45404,"digest":"632d47971ce98f67252b59ec394cb688"},"bootstrap/glyphicons-halflings-regular-e88ed3ff660b39de62652ed99f351552.woff":{"logical_path":"bootstrap/glyphicons-halflings-regular.woff","mtime":"2015-05-12T12:15:59+03:00","size":23424,"digest":"e88ed3ff660b39de62652ed99f351552"},"bootstrap/glyphicons-halflings-regular-b5493d564382942c09f766d4c2b51f0a.woff2":{"logical_path":"bootstrap/glyphicons-halflings-regular.woff2","mtime":"2015-05-12T12:15:59+03:00","size":18028,"digest":"b5493d564382942c09f766d4c2b51f0a"},"admin-manifest-4df541812fe4c37894758e9b93a255ddeb09cae1a258ee62f8cb0746496124a0.css":{"logical_path":"admin-manifest.css","mtime":"2015-06-03T17:46:46+03:00","size":166887,"digest":"4df541812fe4c37894758e9b93a255ddeb09cae1a258ee62f8cb0746496124a0","integrity":"sha256-TfVBgS/kw3iUdY6bk6JV3esJyuGiWO5i+MsHRklhJKA="},"admin-manifest-a1d98585d33f501b3f72a9964749e49845ce9827c3254f31abc689b1cc284877.js":{"logical_path":"admin-manifest.js","mtime":"2015-06-03T23:30:45+03:00","size":323860,"digest":"a1d98585d33f501b3f72a9964749e49845ce9827c3254f31abc689b1cc284877","integrity":"sha256-odmFhdM/UBs/cqmWR0nkmEXOmCfDJU8xq8aJscwoSHc="},"registrar-manifest-bffa75923fdda878303aa17da806fcf43415a599a19bf0022cf3f9e9d6140a05.css":{"logical_path":"registrar-manifest.css","mtime":"2015-06-03T17:32:10+03:00","size":192110,"digest":"bffa75923fdda878303aa17da806fcf43415a599a19bf0022cf3f9e9d6140a05","integrity":"sha256-v/p1kj/dqHgwOqF9qAb89DQVpZmhm/ACLPP56dYUCgU="},"registrar-manifest-91e58ca08340b0a7792aaec3980fdb8595319d31ea237173494e505a5b3751c6.js":{"logical_path":"registrar-manifest.js","mtime":"2015-06-03T23:27:27+03:00","size":310445,"digest":"91e58ca08340b0a7792aaec3980fdb8595319d31ea237173494e505a5b3751c6","integrity":"sha256-keWMoINAsKd5Kq7DmA/bhZUxnTHqI3FzSU5QWls3UcY="},"registrant-manifest-5042d2816e8cc296ed38449bd684b7df1f827e9aebbade86995e44f0320de332.css":{"logical_path":"registrant-manifest.css","mtime":"2015-06-03T17:32:10+03:00","size":192295,"digest":"5042d2816e8cc296ed38449bd684b7df1f827e9aebbade86995e44f0320de332","integrity":"sha256-UELSgW6MwpbtOESb1oS33x+Cfprrut6GmV5E8DIN4zI="},"registrant-manifest-9fb37a048a37bc0d0dfa7530d548c0dd38c4ee2ad067fe962c06cc7e94d2ddac.js":{"logical_path":"registrant-manifest.js","mtime":"2015-06-03T23:27:27+03:00","size":310445,"digest":"9fb37a048a37bc0d0dfa7530d548c0dd38c4ee2ad067fe962c06cc7e94d2ddac","integrity":"sha256-n7N6BIo3vA0N+nUw1UjA3TjE7irQZ/6WLAbMfpTS3aw="},"shared/pdf-f6e83972424c39d3f7ebe55fb4679237496990148efb3bb9a2a10a2c070be1a7.css":{"logical_path":"shared/pdf.css","mtime":"2015-06-03T17:32:03+03:00","size":120172,"digest":"f6e83972424c39d3f7ebe55fb4679237496990148efb3bb9a2a10a2c070be1a7","integrity":"sha256-9ug5ckJMOdP36+VftGeSN0lpkBSO+zu5oqEKLAcL4ac="},"select2-d6b5d8d83dbc18fb8d77c8761d331cd9e5123c9684950bab0406e98a24ac5ae8.png":{"logical_path":"select2.png","mtime":"2015-05-12T11:05:57+03:00","size":613,"digest":"d6b5d8d83dbc18fb8d77c8761d331cd9e5123c9684950bab0406e98a24ac5ae8","integrity":"sha256-1rXY2D28GPuNd8h2HTMc2eUSPJaElQurBAbpiiSsWug="},"select2-spinner-f6ecff617ec2ba7f559e6f535cad9b70a3f91120737535dab4d4548a6c83576c.gif":{"logical_path":"select2-spinner.gif","mtime":"2015-05-12T11:05:57+03:00","size":1849,"digest":"f6ecff617ec2ba7f559e6f535cad9b70a3f91120737535dab4d4548a6c83576c","integrity":"sha256-9uz/YX7Cun9Vnm9TXK2bcKP5ESBzdTXatNRUimyDV2w="},"select2x2-6fe28d687dc0ed4d96016238c608ba1e7198c9c9accfa0b360b78018b9fb9bc2.png":{"logical_path":"select2x2.png","mtime":"2015-05-12T11:05:57+03:00","size":845,"digest":"6fe28d687dc0ed4d96016238c608ba1e7198c9c9accfa0b360b78018b9fb9bc2","integrity":"sha256-b+KNaH3A7U2WAWI4xgi6HnGYycmsz6CzYLeAGLn7m8I="},"alpha-9ac45a6b3c13dd5c5cf1b5d18c6f24a537dd2e4598238527d232a3e2ea5b5947.png":{"logical_path":"alpha.png","mtime":"2015-04-30T12:07:54+03:00","size":7089,"digest":"9ac45a6b3c13dd5c5cf1b5d18c6f24a537dd2e4598238527d232a3e2ea5b5947","integrity":"sha256-msRaazwT3Vxc8bXRjG8kpTfdLkWYI4Un0jKj4upbWUc="},"bg-b8036abd2f0f36e3ab54d5d5b25b0fbac11d63ec6106d959df3fa180b379de05.jpg":{"logical_path":"bg.jpg","mtime":"2015-06-03T17:32:03+03:00","size":69058,"digest":"b8036abd2f0f36e3ab54d5d5b25b0fbac11d63ec6106d959df3fa180b379de05","integrity":"sha256-uANqvS8PNuOrVNXVslsPusEdY+xhBtlZ3z+hgLN53gU="},"danske-07a4395cc406785da129414e15872fe1d6a4f6f6da0066da6701b56cdb72ea96.png":{"logical_path":"danske.png","mtime":"2015-06-03T17:32:03+03:00","size":1130,"digest":"07a4395cc406785da129414e15872fe1d6a4f6f6da0066da6701b56cdb72ea96","integrity":"sha256-B6Q5XMQGeF2hKUFOFYcv4dak9vbaAGbaZwG1bNty6pY="},"development-0b993e22410c7952394ac19ce3b41b722a97b93138a9a002091e1e5226d29bf5.png":{"logical_path":"development.png","mtime":"2015-04-30T12:07:54+03:00","size":14496,"digest":"0b993e22410c7952394ac19ce3b41b722a97b93138a9a002091e1e5226d29bf5","integrity":"sha256-C5k+IkEMeVI5SsGc47QbciqXuTE4qaACCR4eUibSm/U="},"eis-logo-et-86a549d266cda73e3225c5eeba14532c59d498e1fd980ec129fded68da8bb307.png":{"logical_path":"eis-logo-et.png","mtime":"2015-06-03T17:32:03+03:00","size":1440,"digest":"86a549d266cda73e3225c5eeba14532c59d498e1fd980ec129fded68da8bb307","integrity":"sha256-hqVJ0mbNpz4yJcXuuhRTLFnUmOH9mA7BKf3taNqLswc="},"favicon-309e00e2f78f9a2b042abc2806a8a4ed9cf6bb5d3f00ccc0985b1308bfd86c49.ico":{"logical_path":"favicon.ico","mtime":"2015-06-03T17:32:03+03:00","size":1150,"digest":"309e00e2f78f9a2b042abc2806a8a4ed9cf6bb5d3f00ccc0985b1308bfd86c49","integrity":"sha256-MJ4A4vePmisEKrwoBqik7Zz2u10/AMzAmFsTCL/YbEk="},"id_card-ea506a49b25c8de4e68e786d90f5ec5defb6c8e895b90f2f129815f5e550fe8e.gif":{"logical_path":"id_card.gif","mtime":"2015-06-03T17:32:03+03:00","size":564,"digest":"ea506a49b25c8de4e68e786d90f5ec5defb6c8e895b90f2f129815f5e550fe8e","integrity":"sha256-6lBqSbJcjeTmjnhtkPXsXe+2yOiVuQ8vEpgV9eVQ/o4="},"lhv-4d09d3126a05df392b73c54fa9b1eb605798c2e9bd361cf44500f73038832030.png":{"logical_path":"lhv.png","mtime":"2015-06-03T17:32:03+03:00","size":3417,"digest":"4d09d3126a05df392b73c54fa9b1eb605798c2e9bd361cf44500f73038832030","integrity":"sha256-TQnTEmoF3zkrc8VPqbHrYFeYwum9Nhz0RQD3MDiDIDA="},"mid-275543ecea377debe1ac892470f3aea4f7e7f0f9089fc0fbea4de410742e5239.gif":{"logical_path":"mid.gif","mtime":"2015-06-03T17:32:03+03:00","size":1566,"digest":"275543ecea377debe1ac892470f3aea4f7e7f0f9089fc0fbea4de410742e5239","integrity":"sha256-J1VD7Oo3fevhrIkkcPOupPfn8PkIn8D76k3kEHQuUjk="},"nordea-75c938c7436e0c8316f056be8df8acd0e8b16e09790e78f78da96d9f8633ef3b.png":{"logical_path":"nordea.png","mtime":"2015-06-03T17:32:03+03:00","size":1181,"digest":"75c938c7436e0c8316f056be8df8acd0e8b16e09790e78f78da96d9f8633ef3b","integrity":"sha256-dck4x0NuDIMW8Fa+jfis0Oixbgl5Dnj3jaltn4Yz7zs="},"registrar/bg-alpha-9ac45a6b3c13dd5c5cf1b5d18c6f24a537dd2e4598238527d232a3e2ea5b5947.png":{"logical_path":"registrar/bg-alpha.png","mtime":"2015-06-03T17:32:03+03:00","size":7089,"digest":"9ac45a6b3c13dd5c5cf1b5d18c6f24a537dd2e4598238527d232a3e2ea5b5947","integrity":"sha256-msRaazwT3Vxc8bXRjG8kpTfdLkWYI4Un0jKj4upbWUc="},"registrar/bg-development-0b993e22410c7952394ac19ce3b41b722a97b93138a9a002091e1e5226d29bf5.png":{"logical_path":"registrar/bg-development.png","mtime":"2015-06-03T17:32:03+03:00","size":14496,"digest":"0b993e22410c7952394ac19ce3b41b722a97b93138a9a002091e1e5226d29bf5","integrity":"sha256-C5k+IkEMeVI5SsGc47QbciqXuTE4qaACCR4eUibSm/U="},"registrar/bg-staging-6276f8c00911bc99f301f919e408ae3ef726c7378324ac55fd5d378ba3a4dc2d.png":{"logical_path":"registrar/bg-staging.png","mtime":"2015-06-03T17:32:03+03:00","size":12294,"digest":"6276f8c00911bc99f301f919e408ae3ef726c7378324ac55fd5d378ba3a4dc2d","integrity":"sha256-Ynb4wAkRvJnzAfkZ5AiuPvcmxzeDJKxV/V03i6Ok3C0="},"registrar/favicon-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.ico":{"logical_path":"registrar/favicon.ico","mtime":"2015-06-03T17:32:03+03:00","size":0,"digest":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","integrity":"sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="},"seb-9c9d943014cc4ee706244893cd8a2c4a8a7cc97bfbdef6a66e22c72f33d5f25e.png":{"logical_path":"seb.png","mtime":"2015-06-03T17:32:03+03:00","size":2439,"digest":"9c9d943014cc4ee706244893cd8a2c4a8a7cc97bfbdef6a66e22c72f33d5f25e","integrity":"sha256-nJ2UMBTMTucGJEiTzYosSop8yXv73vambiLHLzPV8l4="},"staging-6276f8c00911bc99f301f919e408ae3ef726c7378324ac55fd5d378ba3a4dc2d.png":{"logical_path":"staging.png","mtime":"2015-04-30T12:07:54+03:00","size":12294,"digest":"6276f8c00911bc99f301f919e408ae3ef726c7378324ac55fd5d378ba3a4dc2d","integrity":"sha256-Ynb4wAkRvJnzAfkZ5AiuPvcmxzeDJKxV/V03i6Ok3C0="},"swed-2cf45729062cf5fa634247ba372c579c97f382e5cc43fa111219077e7473fdbb.png":{"logical_path":"swed.png","mtime":"2015-06-03T17:32:03+03:00","size":1521,"digest":"2cf45729062cf5fa634247ba372c579c97f382e5cc43fa111219077e7473fdbb","integrity":"sha256-LPRXKQYs9fpjQke6NyxXnJfzguXMQ/oREhkHfnRz/bs="},"test-9ac45a6b3c13dd5c5cf1b5d18c6f24a537dd2e4598238527d232a3e2ea5b5947.png":{"logical_path":"test.png","mtime":"2015-06-03T17:32:03+03:00","size":7089,"digest":"9ac45a6b3c13dd5c5cf1b5d18c6f24a537dd2e4598238527d232a3e2ea5b5947","integrity":"sha256-msRaazwT3Vxc8bXRjG8kpTfdLkWYI4Un0jKj4upbWUc="},"admin/application-2e4aafc94dbce8d43d7bac4eb5521a14a72e3bbeece3b4363494d70fcd274542.js":{"logical_path":"admin/application.js","mtime":"2015-06-03T23:30:45+03:00","size":287,"digest":"2e4aafc94dbce8d43d7bac4eb5521a14a72e3bbeece3b4363494d70fcd274542","integrity":"sha256-LkqvyU286NQ9e6xOtVIaFKcuO77s47Q2NJTXD80nRUI="},"registrar/application-978b21a99ae3caabb8a9e301dccaa0b93f86cc789a9595158c98ee51393b8cb9.js":{"logical_path":"registrar/application.js","mtime":"2015-06-03T23:27:07+03:00","size":804,"digest":"978b21a99ae3caabb8a9e301dccaa0b93f86cc789a9595158c98ee51393b8cb9","integrity":"sha256-l4shqZrjyqu4qeMB3MqguT+GzHialZUVjJjuUTk7jLk="},"etelkalight-webfont-baf7e35ab2f64bf1c6fa4476d3934c7422062995738fd9e5715b02f55002d7c0.eot":{"logical_path":"etelkalight-webfont.eot","mtime":"2015-06-03T17:32:03+03:00","size":23109,"digest":"baf7e35ab2f64bf1c6fa4476d3934c7422062995738fd9e5715b02f55002d7c0","integrity":"sha256-uvfjWrL2S/HG+kR205NMdCIGKZVzj9nlcVsC9VAC18A="},"etelkalight-webfont-2b575f6e4696d74957af27a7c7bb7976b7ca31d0ebe8ec25bb4c3494d5d16e24.svg":{"logical_path":"etelkalight-webfont.svg","mtime":"2015-06-03T17:32:03+03:00","size":64768,"digest":"2b575f6e4696d74957af27a7c7bb7976b7ca31d0ebe8ec25bb4c3494d5d16e24","integrity":"sha256-K1dfbkaW10lXryenx7t5drfKMdDr6Owlu0w0lNXRbiQ="},"etelkalight-webfont-f68a2db6346d864f82c3b3e725ee60b0217e91e46ec47f96710f70f996b61af1.ttf":{"logical_path":"etelkalight-webfont.ttf","mtime":"2015-06-03T17:32:03+03:00","size":49748,"digest":"f68a2db6346d864f82c3b3e725ee60b0217e91e46ec47f96710f70f996b61af1","integrity":"sha256-9oottjRthk+Cw7PnJe5gsCF+keRuxH+WcQ9w+Za2GvE="},"etelkalight-webfont-1ed38dbac6b817bf74bd46a98d61005aa2615db7ac743e4037364d1021084043.woff":{"logical_path":"etelkalight-webfont.woff","mtime":"2015-06-03T17:32:03+03:00","size":26204,"digest":"1ed38dbac6b817bf74bd46a98d61005aa2615db7ac743e4037364d1021084043","integrity":"sha256-HtONusa4F790vUapjWEAWqJhXbesdD5ANzZNECEIQEM="},"etelkalightbold-webfont-1d94cabe6fb55b05f746fe0aa51a7a503683d7afdb68360ed26bfac03e1b3c39.eot":{"logical_path":"etelkalightbold-webfont.eot","mtime":"2015-06-03T17:32:03+03:00","size":23707,"digest":"1d94cabe6fb55b05f746fe0aa51a7a503683d7afdb68360ed26bfac03e1b3c39","integrity":"sha256-HZTKvm+1WwX3Rv4KpRp6UDaD16/baDYO0mv6wD4bPDk="},"etelkalightbold-webfont-bb0c8e17b99b10f211be3531a51d6ad48a5c6e4670c8fb6160a329fa4758c555.svg":{"logical_path":"etelkalightbold-webfont.svg","mtime":"2015-06-03T17:32:03+03:00","size":62829,"digest":"bb0c8e17b99b10f211be3531a51d6ad48a5c6e4670c8fb6160a329fa4758c555","integrity":"sha256-uwyOF7mbEPIRvjUxpR1q1IpcbkZwyPthYKMp+kdYxVU="},"etelkalightbold-webfont-0f06d1e7f099578e1cc0e9b1875aca2a7128c0ca0d640fd504e97bae0b028429.ttf":{"logical_path":"etelkalightbold-webfont.ttf","mtime":"2015-06-03T17:32:03+03:00","size":51172,"digest":"0f06d1e7f099578e1cc0e9b1875aca2a7128c0ca0d640fd504e97bae0b028429","integrity":"sha256-DwbR5/CZV44cwOmxh1rKKnEowMoNZA/VBOl7rgsChCk="},"etelkalightbold-webfont-d608c036b3e3f04ca87a1c494f8d9e9620a729b2760b5eb1dcee52c4bc8e8805.woff":{"logical_path":"etelkalightbold-webfont.woff","mtime":"2015-06-03T17:32:03+03:00","size":26956,"digest":"d608c036b3e3f04ca87a1c494f8d9e9620a729b2760b5eb1dcee52c4bc8e8805","integrity":"sha256-1gjANrPj8EyoehxJT42eliCnKbJ2C16x3O5SxLyOiAU="},"etelkalightitalic-webfont-ce5cdffe6c589a6dc6bd2c482c718486ff5fb416ab01740750db325179e58654.eot":{"logical_path":"etelkalightitalic-webfont.eot","mtime":"2015-06-03T17:32:03+03:00","size":26426,"digest":"ce5cdffe6c589a6dc6bd2c482c718486ff5fb416ab01740750db325179e58654","integrity":"sha256-zlzf/mxYmm3GvSxILHGEhv9ftBarAXQHUNsyUXnlhlQ="},"etelkalightitalic-webfont-dd5353c2af4ea63e1d0e99ec5f1f85162cee0c4dd0a3840260a2606eefc3e517.svg":{"logical_path":"etelkalightitalic-webfont.svg","mtime":"2015-06-03T17:32:03+03:00","size":69857,"digest":"dd5353c2af4ea63e1d0e99ec5f1f85162cee0c4dd0a3840260a2606eefc3e517","integrity":"sha256-3VNTwq9Opj4dDpnsXx+FFizuDE3Qo4QCYKJgbu/D5Rc="},"etelkalightitalic-webfont-54eb91ad0e0b639f50be02b7c25836c99ad989185f5d2a240d60ea14a1b7384a.ttf":{"logical_path":"etelkalightitalic-webfont.ttf","mtime":"2015-06-03T17:32:03+03:00","size":57040,"digest":"54eb91ad0e0b639f50be02b7c25836c99ad989185f5d2a240d60ea14a1b7384a","integrity":"sha256-VOuRrQ4LY59QvgK3wlg2yZrZiRhfXSokDWDqFKG3OEo="},"etelkalightitalic-webfont-d1fb9621d40ef45104078a4a5b98ce4cba00872cf8ac56e299cf1397c146cac3.woff":{"logical_path":"etelkalightitalic-webfont.woff","mtime":"2015-06-03T17:32:03+03:00","size":29884,"digest":"d1fb9621d40ef45104078a4a5b98ce4cba00872cf8ac56e299cf1397c146cac3","integrity":"sha256-0fuWIdQO9FEEB4pKW5jOTLoAhyz4rFbimc8Tl8FGysM="},"infotexb-webfont-1951e43e1d9ab99b0d4998abba4aab34f3e68b337be90800db517e4a8d27d001.eot":{"logical_path":"infotexb-webfont.eot","mtime":"2015-06-03T17:32:03+03:00","size":23124,"digest":"1951e43e1d9ab99b0d4998abba4aab34f3e68b337be90800db517e4a8d27d001","integrity":"sha256-GVHkPh2auZsNSZirukqrNPPmizN76QgA21F+So0n0AE="},"infotexb-webfont-0dda72e34d0d0ced7693b55ed08acc60fb1a9036afd7736e432ac3f22f2e6fdf.svg":{"logical_path":"infotexb-webfont.svg","mtime":"2015-06-03T17:32:03+03:00","size":90188,"digest":"0dda72e34d0d0ced7693b55ed08acc60fb1a9036afd7736e432ac3f22f2e6fdf","integrity":"sha256-Ddpy400NDO12k7Ve0IrMYPsakDav13NuQyrD8i8ub98="},"infotexb-webfont-c0737d1e2edff50645e201bf99f68f2313502ee2bdeb2e56435ee24721baf5cd.ttf":{"logical_path":"infotexb-webfont.ttf","mtime":"2015-06-03T17:32:03+03:00","size":47396,"digest":"c0737d1e2edff50645e201bf99f68f2313502ee2bdeb2e56435ee24721baf5cd","integrity":"sha256-wHN9Hi7f9QZF4gG/mfaPIxNQLuK96y5WQ17iRyG69c0="},"infotexb-webfont-8da32e6db23c39390c55dd5ea8949714757fddba516c5db65e72867504493fbc.woff":{"logical_path":"infotexb-webfont.woff","mtime":"2015-06-03T17:32:03+03:00","size":26228,"digest":"8da32e6db23c39390c55dd5ea8949714757fddba516c5db65e72867504493fbc","integrity":"sha256-jaMubbI8OTkMVd1eqJSXFHV/3bpRbF22XnKGdQRJP7w="},"infotexm-webfont-74df99faeb66d8b02966b8884b860af03c359ed41d348ddb813dbcc3c460eb26.eot":{"logical_path":"infotexm-webfont.eot","mtime":"2015-06-03T17:32:03+03:00","size":23273,"digest":"74df99faeb66d8b02966b8884b860af03c359ed41d348ddb813dbcc3c460eb26","integrity":"sha256-dN+Z+utm2LApZriIS4YK8Dw1ntQdNI3bgT28w8Rg6yY="},"infotexm-webfont-0b52ef10620b8cb7289dc809aac67826d5031e6ab040194fdb7365dc83e95557.svg":{"logical_path":"infotexm-webfont.svg","mtime":"2015-06-03T17:32:03+03:00","size":90423,"digest":"0b52ef10620b8cb7289dc809aac67826d5031e6ab040194fdb7365dc83e95557","integrity":"sha256-C1LvEGILjLconcgJqsZ4JtUDHmqwQBlP23Nl3IPpVVc="},"infotexm-webfont-1d244d27a4ec4c1a5f98c82966faa26e7855c4292c730429477003b6dab5c08b.ttf":{"logical_path":"infotexm-webfont.ttf","mtime":"2015-06-03T17:32:03+03:00","size":47484,"digest":"1d244d27a4ec4c1a5f98c82966faa26e7855c4292c730429477003b6dab5c08b","integrity":"sha256-HSRNJ6TsTBpfmMgpZvqibnhVxCkscwQpR3ADttq1wIs="},"infotexm-webfont-872b5ab4e0b7de6655a52f137a3c99f1e7941fa91ff21a56550f2039834ee9d0.woff":{"logical_path":"infotexm-webfont.woff","mtime":"2015-06-03T17:32:03+03:00","size":26492,"digest":"872b5ab4e0b7de6655a52f137a3c99f1e7941fa91ff21a56550f2039834ee9d0","integrity":"sha256-hytatOC33mZVpS8TejyZ8eeUH6kf8hpWVQ8gOYNO6dA="},"jquery-ui/ui-bg_flat_0_aaaaaa_40x100-9a8492a580bf85d3e98ae8861fbd45567e5a1f83eeafcf9574da0399d5f602ab.png":{"logical_path":"jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png","mtime":"2015-06-03T16:55:27+03:00","size":180,"digest":"9a8492a580bf85d3e98ae8861fbd45567e5a1f83eeafcf9574da0399d5f602ab","integrity":"sha256-moSSpYC/hdPpiuiGH71FVn5aH4Pur8+VdNoDmdX2Aqs="},"jquery-ui/ui-bg_flat_75_ffffff_40x100-39ab7ccd9f4e82579da78a9241265df288d8eb65dbbd7cf48aed2d0129887df5.png":{"logical_path":"jquery-ui/ui-bg_flat_75_ffffff_40x100.png","mtime":"2015-06-03T16:55:27+03:00","size":178,"digest":"39ab7ccd9f4e82579da78a9241265df288d8eb65dbbd7cf48aed2d0129887df5","integrity":"sha256-Oat8zZ9Ogledp4qSQSZd8ojY62XbvXz0iu0tASmIffU="},"jquery-ui/ui-bg_glass_55_fbf9ee_1x400-691597e8a40a891ea94d3589976ecfc33e6145c49422443b00ac2b5a0022964c.png":{"logical_path":"jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png","mtime":"2015-06-03T16:55:27+03:00","size":120,"digest":"691597e8a40a891ea94d3589976ecfc33e6145c49422443b00ac2b5a0022964c","integrity":"sha256-aRWX6KQKiR6pTTWJl27Pwz5hRcSUIkQ7AKwrWgAilkw="},"jquery-ui/ui-bg_glass_65_ffffff_1x400-f0e6cd91b837d5c5644d026e5ffeccd907953317cd5c0f689901733afda260b2.png":{"logical_path":"jquery-ui/ui-bg_glass_65_ffffff_1x400.png","mtime":"2015-06-03T16:55:27+03:00","size":105,"digest":"f0e6cd91b837d5c5644d026e5ffeccd907953317cd5c0f689901733afda260b2","integrity":"sha256-8ObNkbg31cVkTQJuX/7M2QeVMxfNXA9omQFzOv2iYLI="},"jquery-ui/ui-bg_glass_75_dadada_1x400-c108f5cbf2dd9ec07a26530695ddd95e1664597ce6c056ae44c162cc2e28cec4.png":{"logical_path":"jquery-ui/ui-bg_glass_75_dadada_1x400.png","mtime":"2015-06-03T16:55:27+03:00","size":111,"digest":"c108f5cbf2dd9ec07a26530695ddd95e1664597ce6c056ae44c162cc2e28cec4","integrity":"sha256-wQj1y/LdnsB6JlMGld3ZXhZkWXzmwFauRMFizC4ozsQ="},"jquery-ui/ui-bg_glass_75_e6e6e6_1x400-ddf5dd4e0ef2b185e8bb0af7b6e90ebe74a84384cb4700658e76e754c8bfe550.png":{"logical_path":"jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png","mtime":"2015-06-03T16:55:27+03:00","size":110,"digest":"ddf5dd4e0ef2b185e8bb0af7b6e90ebe74a84384cb4700658e76e754c8bfe550","integrity":"sha256-3fXdTg7ysYXouwr3tukOvnSoQ4TLRwBljnbnVMi/5VA="},"jquery-ui/ui-bg_glass_95_fef1ec_1x400-f6f1c1bedf1a0f37cfef81d12f5f012869d1ee7c984775a569827a1784d34f5c.png":{"logical_path":"jquery-ui/ui-bg_glass_95_fef1ec_1x400.png","mtime":"2015-06-03T16:55:27+03:00","size":119,"digest":"f6f1c1bedf1a0f37cfef81d12f5f012869d1ee7c984775a569827a1784d34f5c","integrity":"sha256-9vHBvt8aDzfP74HRL18BKGnR7nyYR3WlaYJ6F4TTT1w="},"jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100-54270656df079c4da5182629a080fc633b6f84b87985eb016d25a560e2c38d4a.png":{"logical_path":"jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png","mtime":"2015-06-03T16:55:27+03:00","size":101,"digest":"54270656df079c4da5182629a080fc633b6f84b87985eb016d25a560e2c38d4a","integrity":"sha256-VCcGVt8HnE2lGCYpoID8YztvhLh5hesBbSWlYOLDjUo="},"jquery-ui/ui-icons_222222_256x240-57adb0d65f4e91dacfee975d9574422bee7486c8a182d60133728c672f2cdbbc.png":{"logical_path":"jquery-ui/ui-icons_222222_256x240.png","mtime":"2015-06-03T16:55:27+03:00","size":4369,"digest":"57adb0d65f4e91dacfee975d9574422bee7486c8a182d60133728c672f2cdbbc","integrity":"sha256-V62w1l9OkdrP7pddlXRCK+50hsihgtYBM3KMZy8s27w="},"jquery-ui/ui-icons_2e83ff_256x240-20f8c6667afc48aa433ee9eb6d8a0584bdbd6b4a4a9091ff1e6b3adb31e63bd9.png":{"logical_path":"jquery-ui/ui-icons_2e83ff_256x240.png","mtime":"2015-06-03T16:55:27+03:00","size":4369,"digest":"20f8c6667afc48aa433ee9eb6d8a0584bdbd6b4a4a9091ff1e6b3adb31e63bd9","integrity":"sha256-IPjGZnr8SKpDPunrbYoFhL29a0pKkJH/Hms62zHmO9k="},"jquery-ui/ui-icons_454545_256x240-07460e843c3e59aaadbb34231e699e856a2980753c7a47b66447da5d9f93fb7f.png":{"logical_path":"jquery-ui/ui-icons_454545_256x240.png","mtime":"2015-06-03T16:55:27+03:00","size":4369,"digest":"07460e843c3e59aaadbb34231e699e856a2980753c7a47b66447da5d9f93fb7f","integrity":"sha256-B0YOhDw+WaqtuzQjHmmehWopgHU8eke2ZEfaXZ+T+38="},"jquery-ui/ui-icons_888888_256x240-ea2e29625de3463465e93b002b065f5833e05b97f7a052b1c141e754d62e1a8b.png":{"logical_path":"jquery-ui/ui-icons_888888_256x240.png","mtime":"2015-06-03T16:55:27+03:00","size":4369,"digest":"ea2e29625de3463465e93b002b065f5833e05b97f7a052b1c141e754d62e1a8b","integrity":"sha256-6i4pYl3jRjRl6TsAKwZfWDPgW5f3oFKxwUHnVNYuGos="},"jquery-ui/ui-icons_cd0a0a_256x240-1e32c6dbf5d3fd342f27a78aa881550d6412aa207f48468724a6a15402b6041b.png":{"logical_path":"jquery-ui/ui-icons_cd0a0a_256x240.png","mtime":"2015-06-03T16:55:27+03:00","size":4369,"digest":"1e32c6dbf5d3fd342f27a78aa881550d6412aa207f48468724a6a15402b6041b","integrity":"sha256-HjLG2/XT/TQvJ6eKqIFVDWQSqiB/SEaHJKahVAK2BBs="},"bootstrap/glyphicons-halflings-regular-13634da87d9e23f8c3ed9108ce1724d183a39ad072e73e1b3d8cbf646d2d0407.eot":{"logical_path":"bootstrap/glyphicons-halflings-regular.eot","mtime":"2015-05-12T12:15:59+03:00","size":20127,"digest":"13634da87d9e23f8c3ed9108ce1724d183a39ad072e73e1b3d8cbf646d2d0407","integrity":"sha256-E2NNqH2eI/jD7ZEIzhck0YOjmtBy5z4bPYy/ZG0tBAc="},"bootstrap/glyphicons-halflings-regular-42f60659d265c1a3c30f9fa42abcbb56bd4a53af4d83d316d6dd7a36903c43e5.svg":{"logical_path":"bootstrap/glyphicons-halflings-regular.svg","mtime":"2015-05-12T12:15:59+03:00","size":108738,"digest":"42f60659d265c1a3c30f9fa42abcbb56bd4a53af4d83d316d6dd7a36903c43e5","integrity":"sha256-QvYGWdJlwaPDD5+kKry7Vr1KU69Ng9MW1t16NpA8Q+U="},"bootstrap/glyphicons-halflings-regular-e395044093757d82afcb138957d06a1ea9361bdcf0b442d06a18a8051af57456.ttf":{"logical_path":"bootstrap/glyphicons-halflings-regular.ttf","mtime":"2015-05-12T12:15:59+03:00","size":45404,"digest":"e395044093757d82afcb138957d06a1ea9361bdcf0b442d06a18a8051af57456","integrity":"sha256-45UEQJN1fYKvyxOJV9BqHqk2G9zwtELQahioBRr1dFY="},"bootstrap/glyphicons-halflings-regular-a26394f7ede100ca118eff2eda08596275a9839b959c226e15439557a5a80742.woff":{"logical_path":"bootstrap/glyphicons-halflings-regular.woff","mtime":"2015-05-12T12:15:59+03:00","size":23424,"digest":"a26394f7ede100ca118eff2eda08596275a9839b959c226e15439557a5a80742","integrity":"sha256-omOU9+3hAMoRjv8u2ghZYnWpg5uVnCJuFUOVV6WoB0I="},"bootstrap/glyphicons-halflings-regular-fe185d11a49676890d47bb783312a0cda5a44c4039214094e7957b4c040ef11c.woff2":{"logical_path":"bootstrap/glyphicons-halflings-regular.woff2","mtime":"2015-05-12T12:15:59+03:00","size":18028,"digest":"fe185d11a49676890d47bb783312a0cda5a44c4039214094e7957b4c040ef11c","integrity":"sha256-/hhdEaSWdokNR7t4MxKgzaWkTEA5IUCU55V7TAQO8Rw="},"admin-manifest-5f612f59c9effcca0be5396c4f00654de236d2bb1b16bbdf929b47e6504381f3.js":{"logical_path":"admin-manifest.js","mtime":"2015-06-04T00:03:26+03:00","size":323893,"digest":"5f612f59c9effcca0be5396c4f00654de236d2bb1b16bbdf929b47e6504381f3","integrity":"sha256-X2EvWcnv/MoL5TlsTwBlTeI20rsbFrvfkptH5lBDgfM="},"registrar-manifest-413fda057832b25dee9d45f5f07b29ac369fc85f51ecd9e7bc2cdefa5297b4f3.js":{"logical_path":"registrar-manifest.js","mtime":"2015-06-04T00:03:26+03:00","size":314906,"digest":"413fda057832b25dee9d45f5f07b29ac369fc85f51ecd9e7bc2cdefa5297b4f3","integrity":"sha256-QT/aBXgysl3unUX18HsprDafyF9R7NnnvCze+lKXtPM="},"registrant-manifest-f9e9d795de4f7dabe387365fd329c1cb24da923bd357988c120cc5710230cc48.js":{"logical_path":"registrant-manifest.js","mtime":"2015-06-04T00:03:26+03:00","size":314906,"digest":"f9e9d795de4f7dabe387365fd329c1cb24da923bd357988c120cc5710230cc48","integrity":"sha256-+enXld5PfavjhzZf0ynByyTakjvTV5iMEgzFcQIwzEg="}},"assets":{"alpha.png":"alpha-9ac45a6b3c13dd5c5cf1b5d18c6f24a537dd2e4598238527d232a3e2ea5b5947.png","development.png":"development-0b993e22410c7952394ac19ce3b41b722a97b93138a9a002091e1e5226d29bf5.png","staging.png":"staging-6276f8c00911bc99f301f919e408ae3ef726c7378324ac55fd5d378ba3a4dc2d.png","application.js":"application-805c69cec6ea75185028b7e45efee5fd.js","application.css":"application-993e676726143d5ead2f8840bc8894a7.css","login.css":"login-3546bfbfa6594a3ce191938a5e6d3066.css","bootstrap/glyphicons-halflings-regular.eot":"bootstrap/glyphicons-halflings-regular-13634da87d9e23f8c3ed9108ce1724d183a39ad072e73e1b3d8cbf646d2d0407.eot","bootstrap/glyphicons-halflings-regular.svg":"bootstrap/glyphicons-halflings-regular-42f60659d265c1a3c30f9fa42abcbb56bd4a53af4d83d316d6dd7a36903c43e5.svg","bootstrap/glyphicons-halflings-regular.ttf":"bootstrap/glyphicons-halflings-regular-e395044093757d82afcb138957d06a1ea9361bdcf0b442d06a18a8051af57456.ttf","bootstrap/glyphicons-halflings-regular.woff":"bootstrap/glyphicons-halflings-regular-a26394f7ede100ca118eff2eda08596275a9839b959c226e15439557a5a80742.woff","bg.jpg":"bg-b8036abd2f0f36e3ab54d5d5b25b0fbac11d63ec6106d959df3fa180b379de05.jpg","danske.png":"danske-07a4395cc406785da129414e15872fe1d6a4f6f6da0066da6701b56cdb72ea96.png","eis-logo-et.png":"eis-logo-et-86a549d266cda73e3225c5eeba14532c59d498e1fd980ec129fded68da8bb307.png","favicon.ico":"favicon-309e00e2f78f9a2b042abc2806a8a4ed9cf6bb5d3f00ccc0985b1308bfd86c49.ico","id_card.gif":"id_card-ea506a49b25c8de4e68e786d90f5ec5defb6c8e895b90f2f129815f5e550fe8e.gif","lhv.png":"lhv-4d09d3126a05df392b73c54fa9b1eb605798c2e9bd361cf44500f73038832030.png","mid.gif":"mid-275543ecea377debe1ac892470f3aea4f7e7f0f9089fc0fbea4de410742e5239.gif","nordea.png":"nordea-75c938c7436e0c8316f056be8df8acd0e8b16e09790e78f78da96d9f8633ef3b.png","registrar/bg-alpha.png":"registrar/bg-alpha-9ac45a6b3c13dd5c5cf1b5d18c6f24a537dd2e4598238527d232a3e2ea5b5947.png","registrar/bg-development.png":"registrar/bg-development-0b993e22410c7952394ac19ce3b41b722a97b93138a9a002091e1e5226d29bf5.png","registrar/bg-staging.png":"registrar/bg-staging-6276f8c00911bc99f301f919e408ae3ef726c7378324ac55fd5d378ba3a4dc2d.png","registrar/favicon.ico":"registrar/favicon-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.ico","seb.png":"seb-9c9d943014cc4ee706244893cd8a2c4a8a7cc97bfbdef6a66e22c72f33d5f25e.png","swed.png":"swed-2cf45729062cf5fa634247ba372c579c97f382e5cc43fa111219077e7473fdbb.png","test.png":"test-9ac45a6b3c13dd5c5cf1b5d18c6f24a537dd2e4598238527d232a3e2ea5b5947.png","admin-manifest.js":"admin-manifest-5f612f59c9effcca0be5396c4f00654de236d2bb1b16bbdf929b47e6504381f3.js","admin/application.js":"admin/application-2e4aafc94dbce8d43d7bac4eb5521a14a72e3bbeece3b4363494d70fcd274542.js","registrant-manifest.js":"registrant-manifest-f9e9d795de4f7dabe387365fd329c1cb24da923bd357988c120cc5710230cc48.js","registrar-manifest.js":"registrar-manifest-413fda057832b25dee9d45f5f07b29ac369fc85f51ecd9e7bc2cdefa5297b4f3.js","registrar/application.js":"registrar/application-978b21a99ae3caabb8a9e301dccaa0b93f86cc789a9595158c98ee51393b8cb9.js","admin-manifest.css":"admin-manifest-4df541812fe4c37894758e9b93a255ddeb09cae1a258ee62f8cb0746496124a0.css","registrant-manifest.css":"registrant-manifest-5042d2816e8cc296ed38449bd684b7df1f827e9aebbade86995e44f0320de332.css","registrar-manifest.css":"registrar-manifest-bffa75923fdda878303aa17da806fcf43415a599a19bf0022cf3f9e9d6140a05.css","shared/pdf.css":"shared/pdf-f6e83972424c39d3f7ebe55fb4679237496990148efb3bb9a2a10a2c070be1a7.css","etelkalight-webfont.eot":"etelkalight-webfont-baf7e35ab2f64bf1c6fa4476d3934c7422062995738fd9e5715b02f55002d7c0.eot","etelkalight-webfont.svg":"etelkalight-webfont-2b575f6e4696d74957af27a7c7bb7976b7ca31d0ebe8ec25bb4c3494d5d16e24.svg","etelkalight-webfont.ttf":"etelkalight-webfont-f68a2db6346d864f82c3b3e725ee60b0217e91e46ec47f96710f70f996b61af1.ttf","etelkalight-webfont.woff":"etelkalight-webfont-1ed38dbac6b817bf74bd46a98d61005aa2615db7ac743e4037364d1021084043.woff","etelkalightbold-webfont.eot":"etelkalightbold-webfont-1d94cabe6fb55b05f746fe0aa51a7a503683d7afdb68360ed26bfac03e1b3c39.eot","etelkalightbold-webfont.svg":"etelkalightbold-webfont-bb0c8e17b99b10f211be3531a51d6ad48a5c6e4670c8fb6160a329fa4758c555.svg","etelkalightbold-webfont.ttf":"etelkalightbold-webfont-0f06d1e7f099578e1cc0e9b1875aca2a7128c0ca0d640fd504e97bae0b028429.ttf","etelkalightbold-webfont.woff":"etelkalightbold-webfont-d608c036b3e3f04ca87a1c494f8d9e9620a729b2760b5eb1dcee52c4bc8e8805.woff","etelkalightitalic-webfont.eot":"etelkalightitalic-webfont-ce5cdffe6c589a6dc6bd2c482c718486ff5fb416ab01740750db325179e58654.eot","etelkalightitalic-webfont.svg":"etelkalightitalic-webfont-dd5353c2af4ea63e1d0e99ec5f1f85162cee0c4dd0a3840260a2606eefc3e517.svg","etelkalightitalic-webfont.ttf":"etelkalightitalic-webfont-54eb91ad0e0b639f50be02b7c25836c99ad989185f5d2a240d60ea14a1b7384a.ttf","etelkalightitalic-webfont.woff":"etelkalightitalic-webfont-d1fb9621d40ef45104078a4a5b98ce4cba00872cf8ac56e299cf1397c146cac3.woff","infotexb-webfont.eot":"infotexb-webfont-1951e43e1d9ab99b0d4998abba4aab34f3e68b337be90800db517e4a8d27d001.eot","infotexb-webfont.svg":"infotexb-webfont-0dda72e34d0d0ced7693b55ed08acc60fb1a9036afd7736e432ac3f22f2e6fdf.svg","infotexb-webfont.ttf":"infotexb-webfont-c0737d1e2edff50645e201bf99f68f2313502ee2bdeb2e56435ee24721baf5cd.ttf","infotexb-webfont.woff":"infotexb-webfont-8da32e6db23c39390c55dd5ea8949714757fddba516c5db65e72867504493fbc.woff","infotexm-webfont.eot":"infotexm-webfont-74df99faeb66d8b02966b8884b860af03c359ed41d348ddb813dbcc3c460eb26.eot","infotexm-webfont.svg":"infotexm-webfont-0b52ef10620b8cb7289dc809aac67826d5031e6ab040194fdb7365dc83e95557.svg","infotexm-webfont.ttf":"infotexm-webfont-1d244d27a4ec4c1a5f98c82966faa26e7855c4292c730429477003b6dab5c08b.ttf","infotexm-webfont.woff":"infotexm-webfont-872b5ab4e0b7de6655a52f137a3c99f1e7941fa91ff21a56550f2039834ee9d0.woff","jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png":"jquery-ui/ui-bg_flat_0_aaaaaa_40x100-9a8492a580bf85d3e98ae8861fbd45567e5a1f83eeafcf9574da0399d5f602ab.png","jquery-ui/ui-bg_flat_75_ffffff_40x100.png":"jquery-ui/ui-bg_flat_75_ffffff_40x100-39ab7ccd9f4e82579da78a9241265df288d8eb65dbbd7cf48aed2d0129887df5.png","jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png":"jquery-ui/ui-bg_glass_55_fbf9ee_1x400-691597e8a40a891ea94d3589976ecfc33e6145c49422443b00ac2b5a0022964c.png","jquery-ui/ui-bg_glass_65_ffffff_1x400.png":"jquery-ui/ui-bg_glass_65_ffffff_1x400-f0e6cd91b837d5c5644d026e5ffeccd907953317cd5c0f689901733afda260b2.png","jquery-ui/ui-bg_glass_75_dadada_1x400.png":"jquery-ui/ui-bg_glass_75_dadada_1x400-c108f5cbf2dd9ec07a26530695ddd95e1664597ce6c056ae44c162cc2e28cec4.png","jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png":"jquery-ui/ui-bg_glass_75_e6e6e6_1x400-ddf5dd4e0ef2b185e8bb0af7b6e90ebe74a84384cb4700658e76e754c8bfe550.png","jquery-ui/ui-bg_glass_95_fef1ec_1x400.png":"jquery-ui/ui-bg_glass_95_fef1ec_1x400-f6f1c1bedf1a0f37cfef81d12f5f012869d1ee7c984775a569827a1784d34f5c.png","jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png":"jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100-54270656df079c4da5182629a080fc633b6f84b87985eb016d25a560e2c38d4a.png","jquery-ui/ui-icons_222222_256x240.png":"jquery-ui/ui-icons_222222_256x240-57adb0d65f4e91dacfee975d9574422bee7486c8a182d60133728c672f2cdbbc.png","jquery-ui/ui-icons_2e83ff_256x240.png":"jquery-ui/ui-icons_2e83ff_256x240-20f8c6667afc48aa433ee9eb6d8a0584bdbd6b4a4a9091ff1e6b3adb31e63bd9.png","jquery-ui/ui-icons_454545_256x240.png":"jquery-ui/ui-icons_454545_256x240-07460e843c3e59aaadbb34231e699e856a2980753c7a47b66447da5d9f93fb7f.png","jquery-ui/ui-icons_888888_256x240.png":"jquery-ui/ui-icons_888888_256x240-ea2e29625de3463465e93b002b065f5833e05b97f7a052b1c141e754d62e1a8b.png","jquery-ui/ui-icons_cd0a0a_256x240.png":"jquery-ui/ui-icons_cd0a0a_256x240-1e32c6dbf5d3fd342f27a78aa881550d6412aa207f48468724a6a15402b6041b.png","select2-spinner.gif":"select2-spinner-f6ecff617ec2ba7f559e6f535cad9b70a3f91120737535dab4d4548a6c83576c.gif","select2.png":"select2-d6b5d8d83dbc18fb8d77c8761d331cd9e5123c9684950bab0406e98a24ac5ae8.png","select2x2.png":"select2x2-6fe28d687dc0ed4d96016238c608ba1e7198c9c9accfa0b360b78018b9fb9bc2.png","bootstrap/glyphicons-halflings-regular.woff2":"bootstrap/glyphicons-halflings-regular-fe185d11a49676890d47bb783312a0cda5a44c4039214094e7957b4c040ef11c.woff2"}} \ No newline at end of file diff --git a/public/assets/admin-manifest-4df541812fe4c37894758e9b93a255ddeb09cae1a258ee62f8cb0746496124a0.css b/public/assets/admin-manifest-4df541812fe4c37894758e9b93a255ddeb09cae1a258ee62f8cb0746496124a0.css new file mode 100644 index 000000000..346fc2af2 --- /dev/null +++ b/public/assets/admin-manifest-4df541812fe4c37894758e9b93a255ddeb09cae1a258ee62f8cb0746496124a0.css @@ -0,0 +1,30 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url("/assets/bootstrap/glyphicons-halflings-regular-13634da87d9e23f8c3ed9108ce1724d183a39ad072e73e1b3d8cbf646d2d0407.eot");src:url("/assets/bootstrap/glyphicons-halflings-regular-13634da87d9e23f8c3ed9108ce1724d183a39ad072e73e1b3d8cbf646d2d0407.eot?#iefix") format("embedded-opentype"),url("/assets/bootstrap/glyphicons-halflings-regular-fe185d11a49676890d47bb783312a0cda5a44c4039214094e7957b4c040ef11c.woff2") format("woff2"),url("/assets/bootstrap/glyphicons-halflings-regular-a26394f7ede100ca118eff2eda08596275a9839b959c226e15439557a5a80742.woff") format("woff"),url("/assets/bootstrap/glyphicons-halflings-regular-e395044093757d82afcb138957d06a1ea9361bdcf0b442d06a18a8051af57456.ttf") format("truetype"),url("/assets/bootstrap/glyphicons-halflings-regular-42f60659d265c1a3c30f9fa42abcbb56bd4a53af4d83d316d6dd7a36903c43e5.svg#glyphicons_halflingsregular") format("svg")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:"EtelkaLightProRegular", Arial, Helvetica, sans-serif;font-size:14px;line-height:1.42857143;color:#333333;background-color:#F8F8F8}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#F8F8F8;border:1px solid #ddd;border-radius:2px;-webkit-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h1 .small,h2 small,h2 .small,h3 small,h3 .small,h4 small,h4 .small,h5 small,h5 .small,h6 small,h6 .small,.h1 small,.h1 .small,.h2 small,.h2 .small,.h3 small,.h3 .small,.h4 small,.h4 .small,.h5 small,.h5 .small,.h6 small,.h6 .small{font-weight:normal;line-height:1;color:#777777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,h1 .small,.h1 small,.h1 .small,h2 small,h2 .small,.h2 small,.h2 .small,h3 small,h3 .small,.h3 small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,h4 .small,.h4 small,.h4 .small,h5 small,h5 .small,.h5 small,.h5 .small,h6 small,h6 .small,.h6 small,.h6 .small{font-size:75%}h1,.h1{font-size:26px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width: 768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase,.initialism{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff}.bg-primary{background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eeeeee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ul ol,ol ul,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table}.dl-horizontal dd:after{clear:both}@media (min-width: 768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777777}.initialism{font-size:90%}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eeeeee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;text-align:right}.blockquote-reverse footer:before,.blockquote-reverse small:before,.blockquote-reverse .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,.blockquote-reverse small:after,.blockquote-reverse .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo, Monaco, Consolas, "Courier New", monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:2px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:2px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container:before,.container:after{content:" ";display:table}.container:after{clear:both}@media (min-width: 768px){.container{width:750px}}@media (min-width: 992px){.container{width:970px}}@media (min-width: 1200px){.container{width:860px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.container-fluid:before,.container-fluid:after{content:" ";display:table}.container-fluid:after{clear:both}.row{margin-left:-15px;margin-right:-15px}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-1{width:8.33333333%}.col-xs-2{width:16.66666667%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333%}.col-xs-5{width:41.66666667%}.col-xs-6{width:50%}.col-xs-7{width:58.33333333%}.col-xs-8{width:66.66666667%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333%}.col-xs-11{width:91.66666667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.33333333%}.col-xs-push-2{left:16.66666667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.33333333%}.col-xs-push-5{left:41.66666667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.33333333%}.col-xs-push-8{left:66.66666667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.33333333%}.col-xs-push-11{left:91.66666667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-12{margin-left:100%}@media (min-width: 768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-1{width:8.33333333%}.col-sm-2{width:16.66666667%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333%}.col-sm-5{width:41.66666667%}.col-sm-6{width:50%}.col-sm-7{width:58.33333333%}.col-sm-8{width:66.66666667%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333%}.col-sm-11{width:91.66666667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.33333333%}.col-sm-push-2{left:16.66666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333%}.col-sm-push-5{left:41.66666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.33333333%}.col-sm-push-8{left:66.66666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333%}.col-sm-push-11{left:91.66666667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-12{margin-left:100%}}@media (min-width: 992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-1{width:8.33333333%}.col-md-2{width:16.66666667%}.col-md-3{width:25%}.col-md-4{width:33.33333333%}.col-md-5{width:41.66666667%}.col-md-6{width:50%}.col-md-7{width:58.33333333%}.col-md-8{width:66.66666667%}.col-md-9{width:75%}.col-md-10{width:83.33333333%}.col-md-11{width:91.66666667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.33333333%}.col-md-pull-2{right:16.66666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333%}.col-md-pull-5{right:41.66666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.33333333%}.col-md-pull-8{right:66.66666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333%}.col-md-pull-11{right:91.66666667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.33333333%}.col-md-push-2{left:16.66666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333%}.col-md-push-5{left:41.66666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.33333333%}.col-md-push-8{left:66.66666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333%}.col-md-push-11{left:91.66666667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-12{margin-left:100%}}@media (min-width: 1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-1{width:8.33333333%}.col-lg-2{width:16.66666667%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333%}.col-lg-5{width:41.66666667%}.col-lg-6{width:50%}.col-lg-7{width:58.33333333%}.col-lg-8{width:66.66666667%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333%}.col-lg-11{width:91.66666667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.33333333%}.col-lg-push-2{left:16.66666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333%}.col-lg-push-5{left:41.66666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.33333333%}.col-lg-push-8{left:66.66666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333%}.col-lg-push-11{left:91.66666667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-12{margin-left:100%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>thead>tr>td,.table>tbody>tr>th,.table>tbody>tr>td,.table>tfoot>tr>th,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>th,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#F8F8F8}.table-condensed>thead>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>thead>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>thead>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>thead>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>thead>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>thead>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width: 767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;-o-transition:border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eeeeee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio: 0){input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{line-height:34px}input[type="date"].input-sm,.input-group-sm>input[type="date"].form-control,.input-group-sm>input[type="date"].input-group-addon,.input-group-sm>.input-group-btn>input[type="date"].btn,.input-group-sm input[type="date"],input[type="time"].input-sm,.input-group-sm>input[type="time"].form-control,.input-group-sm>input[type="time"].input-group-addon,.input-group-sm>.input-group-btn>input[type="time"].btn,.input-group-sm input[type="time"],input[type="datetime-local"].input-sm,.input-group-sm>input[type="datetime-local"].form-control,.input-group-sm>input[type="datetime-local"].input-group-addon,.input-group-sm>.input-group-btn>input[type="datetime-local"].btn,.input-group-sm input[type="datetime-local"],input[type="month"].input-sm,.input-group-sm>input[type="month"].form-control,.input-group-sm>input[type="month"].input-group-addon,.input-group-sm>.input-group-btn>input[type="month"].btn,.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,.input-group-lg>input[type="date"].form-control,.input-group-lg>input[type="date"].input-group-addon,.input-group-lg>.input-group-btn>input[type="date"].btn,.input-group-lg input[type="date"],input[type="time"].input-lg,.input-group-lg>input[type="time"].form-control,.input-group-lg>input[type="time"].input-group-addon,.input-group-lg>.input-group-btn>input[type="time"].btn,.input-group-lg input[type="time"],input[type="datetime-local"].input-lg,.input-group-lg>input[type="datetime-local"].form-control,.input-group-lg>input[type="datetime-local"].input-group-addon,.input-group-lg>.input-group-btn>input[type="datetime-local"].btn,.input-group-lg input[type="datetime-local"],input[type="month"].input-lg,.input-group-lg>input[type="month"].form-control,.input-group-lg>input[type="month"].input-group-addon,.input-group-lg>.input-group-btn>input[type="month"].btn,.input-group-lg input[type="month"]{line-height:46px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="radio"].disabled,fieldset[disabled] input[type="radio"],input[type="checkbox"][disabled],input[type="checkbox"].disabled,fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,fieldset[disabled] .radio-inline,.checkbox-inline.disabled,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,fieldset[disabled] .radio label,.checkbox.disabled label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.input-group-lg>.form-control-static.form-control,.input-group-lg>.form-control-static.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.form-control-static.input-sm,.input-group-sm>.form-control-static.form-control,.input-group-sm>.form-control-static.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn{padding-left:0;padding-right:0}.input-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm,.input-group-sm>select.form-control,.input-group-sm>select.input-group-addon,.input-group-sm>.input-group-btn>select.btn{height:30px;line-height:30px}textarea.input-sm,.input-group-sm>textarea.form-control,.input-group-sm>textarea.input-group-addon,.input-group-sm>.input-group-btn>textarea.btn,select[multiple].input-sm,.input-group-sm>select[multiple].form-control,.input-group-sm>select[multiple].input-group-addon,.input-group-sm>.input-group-btn>select[multiple].btn{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;min-height:32px}.input-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg,.input-group-lg>select.form-control,.input-group-lg>select.input-group-addon,.input-group-lg>.input-group-btn>select.btn{height:46px;line-height:46px}textarea.input-lg,.input-group-lg>textarea.form-control,.input-group-lg>textarea.input-group-addon,.input-group-lg>.input-group-btn>textarea.btn,select[multiple].input-lg,.input-group-lg>select[multiple].form-control,.input-group-lg>select[multiple].input-group-addon,.input-group-lg>.input-group-btn>select[multiple].btn{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;min-height:38px}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg>.form-control+.form-control-feedback,.input-group-lg>.input-group-addon+.form-control-feedback,.input-group-lg>.input-group-btn>.btn+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback,.input-group-sm>.form-control+.form-control-feedback,.input-group-sm>.input-group-addon+.form-control-feedback,.input-group-sm>.input-group-btn>.btn+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.field_with_errors .help-block,.has-error .control-label,.field_with_errors .control-label,.has-error .radio,.field_with_errors .radio,.has-error .checkbox,.field_with_errors .checkbox,.has-error .radio-inline,.field_with_errors .radio-inline,.has-error .checkbox-inline,.field_with_errors .checkbox-inline,.has-error.radio label,.radio.field_with_errors label,.has-error.checkbox label,.checkbox.field_with_errors label,.has-error.radio-inline label,.radio-inline.field_with_errors label,.has-error.checkbox-inline label,.checkbox-inline.field_with_errors label{color:#a94442}.has-error .form-control,.field_with_errors .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus,.field_with_errors .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon,.field_with_errors .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback,.field_with_errors .form-control-feedback{color:#a94442}.has-feedback label ~ .form-control-feedback{top:25px}.has-feedback label.sr-only ~ .form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width: 768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table}.form-horizontal .form-group:after{clear:both}@media (min-width: 768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width: 768px){.form-horizontal .form-group-lg .control-label{padding-top:14.333333px}}@media (min-width: 768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:2px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn.focus,.btn:active:focus,.btn:active.focus,.btn.active:focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{background-image:none}.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled,.btn-primary.disabled:hover,.btn-primary.disabled:focus,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled.active,.btn-primary[disabled],.btn-primary[disabled]:hover,.btn-primary[disabled]:focus,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary:hover,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary.active{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled,.btn-success.disabled:hover,.btn-success.disabled:focus,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled.active,.btn-success[disabled],.btn-success[disabled]:hover,.btn-success[disabled]:focus,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled].active,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success:hover,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{background-image:none}.btn-info.disabled,.btn-info.disabled:hover,.btn-info.disabled:focus,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled.active,.btn-info[disabled],.btn-info[disabled]:hover,.btn-info[disabled]:focus,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled].active,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info:hover,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled,.btn-warning.disabled:hover,.btn-warning.disabled:focus,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled.active,.btn-warning[disabled],.btn-warning[disabled]:hover,.btn-warning[disabled]:focus,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning:hover,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled,.btn-danger.disabled:hover,.btn-danger.disabled:focus,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled.active,.btn-danger[disabled],.btn-danger[disabled]:hover,.btn-danger[disabled]:focus,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger:hover,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#337ab7;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:hover,fieldset[disabled] .btn-link:focus{color:#777777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:2px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#337ab7}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width: 768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle,.btn-group-lg.btn-group>.btn+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret,.btn-group-lg>.btn .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret,.dropup .btn-group-lg>.btn .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:2px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:2px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555555;text-align:center;background-color:#eeeeee;border:1px solid #ccc;border-radius:2px}.input-group-addon.input-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav:before,.nav:after{content:" ";display:table}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee}.nav>li.disabled>a{color:#777777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:2px 2px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555555;background-color:#F8F8F8;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:2px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified,.nav-tabs.nav-justified{width:100%}.nav-justified>li,.nav-tabs.nav-justified>li{float:none}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width: 768px){.nav-justified>li,.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a,.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified,.nav-tabs.nav-justified{border-bottom:0}.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:2px}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width: 768px){.nav-tabs-justified>li>a,.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:2px 2px 0 0}.nav-tabs-justified>.active>a,.nav-tabs.nav-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#F8F8F8}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{content:" ";display:table}.navbar:after{clear:both}@media (min-width: 768px){.navbar{border-radius:2px}}.navbar-header:before,.navbar-header:after{content:" ";display:table}.navbar-header:after{clear:both}@media (min-width: 768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width: 768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width: 480px) and (orientation: landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-header,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width: 768px){.container>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-header,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width: 768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width: 768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width: 768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:2px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width: 768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width: 767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width: 768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:8px;margin-bottom:8px}@media (min-width: 768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width: 767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width: 768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:2px;border-top-left-radius:2px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm,.btn-group-sm>.navbar-btn.btn{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs,.btn-group-xs>.navbar-btn.btn{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width: 768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width: 768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right ~ .navbar-right{margin-right:0}}.navbar-default{background-color:#F69240;border-color:#f58020}.navbar-default .navbar-brand{color:#fff}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#e6e6e6;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#fff}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#333;background-color:#f58020}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#f58020}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#f58020;color:#333}@media (max-width: 767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#fff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#333;background-color:#f58020}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#fff}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#fff}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:hover,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#090909}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#090909;color:#fff}@media (max-width: 767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#090909}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:hover,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:2px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/ ";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:2px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#337ab7;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:2px;border-top-left-radius:2px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:2px;border-top-right-radius:2px}.pagination>li>a:hover,.pagination>li>a:focus,.pagination>li>span:hover,.pagination>li>span:focus{color:#23527c;background-color:#eeeeee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:hover,.pagination>.active>a:focus,.pagination>.active>span,.pagination>.active>span:hover,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager:before,.pager:after{content:" ";display:table}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777777;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label:empty{display:none}.btn .label{position:relative;top:-1px}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label-default{background-color:#777777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#777777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eeeeee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width: 768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#F8F8F8;border:1px solid #ddd;border-radius:2px;-webkit-transition:border 0.2s ease-in-out;-o-transition:border 0.2s ease-in-out;transition:border 0.2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}.thumbnail .caption{padding:9px;color:#333333}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#337ab7}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:2px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:2px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:2px;border-top-left-radius:2px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;color:#555;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#777777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:2px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{content:" ";display:table}.panel-body:after{clear:both}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:1px;border-top-left-radius:1px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:1px;border-bottom-left-radius:1px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:1px;border-top-left-radius:1px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:1px;border-bottom-left-radius:1px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:1px;border-top-left-radius:1px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:1px;border-top-right-radius:1px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:1px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:1px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:1px;border-bottom-left-radius:1px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:1px;border-bottom-right-radius:1px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:1px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:1px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:2px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width: 768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width: 992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"EtelkaLightProRegular", Arial, Helvetica, sans-serif;font-size:12px;font-weight:normal;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:2px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"EtelkaLightProRegular", Arial, Helvetica, sans-serif;font-size:14px;font-weight:normal;line-height:1.42857143;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;line-height:1}@media all and (transform-3d), (-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform 0.6s ease-in-out;-moz-transition:-moz-transform 0.6s ease-in-out;-o-transition:-o-transform 0.6s ease-in-out;transition:transform 0.6s ease-in-out;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;-moz-perspective:1000;perspective:1000}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0%, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:transparent}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width: 768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs{display:none !important}.visible-sm{display:none !important}.visible-md{display:none !important}.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width: 767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width: 767px){.visible-xs-block{display:block !important}}@media (max-width: 767px){.visible-xs-inline{display:inline !important}}@media (max-width: 767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-block{display:block !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline{display:inline !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-block{display:block !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline{display:inline !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width: 1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width: 1200px){.visible-lg-block{display:block !important}}@media (min-width: 1200px){.visible-lg-inline{display:inline !important}}@media (min-width: 1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width: 767px){.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.center-block{float:none !important}.text-left-not-xs,.text-left-not-sm,.text-left-not-md,.text-left-not-lg{text-align:left}.text-center-not-xs,.text-center-not-sm,.text-center-not-md,.text-center-not-lg{text-align:center}.text-right-not-xs,.text-right-not-sm,.text-right-not-md,.text-right-not-lg{text-align:right}.text-justify-not-xs,.text-justify-not-sm,.text-justify-not-md,.text-justify-not-lg{text-align:justify}@media (max-width: 767px){.text-left-not-xs,.text-center-not-xs,.text-right-not-xs,.text-justify-not-xs{text-align:inherit}.text-left-xs{text-align:left}.text-center-xs{text-align:center}.text-right-xs{text-align:right}.text-justify-xs{text-align:justify}}@media (min-width: 768px) and (max-width: 991px){.text-left-not-sm,.text-center-not-sm,.text-right-not-sm,.text-justify-not-sm{text-align:inherit}.text-left-sm{text-align:left}.text-center-sm{text-align:center}.text-right-sm{text-align:right}.text-justify-sm{text-align:justify}}@media (min-width: 992px) and (max-width: 1199px){.text-left-not-md,.text-center-not-md,.text-right-not-md,.text-justify-not-md{text-align:inherit}.text-left-md{text-align:left}.text-center-md{text-align:center}.text-right-md{text-align:right}.text-justify-md{text-align:justify}}@media (min-width: 1200px){.text-left-not-lg,.text-center-not-lg,.text-right-not-lg,.text-justify-not-lg{text-align:inherit}.text-left-lg{text-align:left}.text-center-lg{text-align:center}.text-right-lg{text-align:right}.text-justify-lg{text-align:justify}}.required:after{content:"*";margin:0 0 0 1px}.not-required:after{content:""}/*! + * jQuery UI CSS Framework 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/category/theming/ + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/ + */.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(/assets/jquery-ui/ui-bg_flat_75_ffffff_40x100-39ab7ccd9f4e82579da78a9241265df288d8eb65dbbd7cf48aed2d0129887df5.png) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(/assets/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100-54270656df079c4da5182629a080fc633b6f84b87985eb016d25a560e2c38d4a.png) 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(/assets/jquery-ui/ui-bg_glass_75_e6e6e6_1x400-ddf5dd4e0ef2b185e8bb0af7b6e90ebe74a84384cb4700658e76e754c8bfe550.png) 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(/assets/jquery-ui/ui-bg_glass_75_dadada_1x400-c108f5cbf2dd9ec07a26530695ddd95e1664597ce6c056ae44c162cc2e28cec4.png) 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(/assets/jquery-ui/ui-bg_glass_65_ffffff_1x400-f0e6cd91b837d5c5644d026e5ffeccd907953317cd5c0f689901733afda260b2.png) 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(/assets/jquery-ui/ui-bg_glass_55_fbf9ee_1x400-691597e8a40a891ea94d3589976ecfc33e6145c49422443b00ac2b5a0022964c.png) 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(/assets/jquery-ui/ui-bg_glass_95_fef1ec_1x400-f6f1c1bedf1a0f37cfef81d12f5f012869d1ee7c984775a569827a1784d34f5c.png) 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(/assets/jquery-ui/ui-icons_222222_256x240-57adb0d65f4e91dacfee975d9574422bee7486c8a182d60133728c672f2cdbbc.png)}.ui-widget-header .ui-icon{background-image:url(/assets/jquery-ui/ui-icons_222222_256x240-57adb0d65f4e91dacfee975d9574422bee7486c8a182d60133728c672f2cdbbc.png)}.ui-state-default .ui-icon{background-image:url(/assets/jquery-ui/ui-icons_888888_256x240-ea2e29625de3463465e93b002b065f5833e05b97f7a052b1c141e754d62e1a8b.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(/assets/jquery-ui/ui-icons_454545_256x240-07460e843c3e59aaadbb34231e699e856a2980753c7a47b66447da5d9f93fb7f.png)}.ui-state-active .ui-icon{background-image:url(/assets/jquery-ui/ui-icons_454545_256x240-07460e843c3e59aaadbb34231e699e856a2980753c7a47b66447da5d9f93fb7f.png)}.ui-state-highlight .ui-icon{background-image:url(/assets/jquery-ui/ui-icons_2e83ff_256x240-20f8c6667afc48aa433ee9eb6d8a0584bdbd6b4a4a9091ff1e6b3adb31e63bd9.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(/assets/jquery-ui/ui-icons_cd0a0a_256x240-1e32c6dbf5d3fd342f27a78aa881550d6412aa207f48468724a6a15402b6041b.png)}.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(/assets/jquery-ui/ui-bg_flat_0_aaaaaa_40x100-9a8492a580bf85d3e98ae8861fbd45567e5a1f83eeafcf9574da0399d5f602ab.png) 50% 50% repeat-x;opacity:0.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(/assets/jquery-ui/ui-bg_flat_0_aaaaaa_40x100-9a8492a580bf85d3e98ae8861fbd45567e5a1f83eeafcf9574da0399d5f602ab.png) 50% 50% repeat-x;opacity:0.3;filter:Alpha(Opacity=30);border-radius:8px}/*! + * jQuery UI CSS Framework 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/category/theming/ + */.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%}/*! + * jQuery UI Datepicker 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/datepicker/#theming + */.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:45%}.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}@font-face{font-family:"EtelkaLightProRegular";src:url(/assets/etelkalight-webfont-baf7e35ab2f64bf1c6fa4476d3934c7422062995738fd9e5715b02f55002d7c0.eot);src:url(/assets/etelkalight-webfont-baf7e35ab2f64bf1c6fa4476d3934c7422062995738fd9e5715b02f55002d7c0.eot?#iefix) format("embedded-opentype"),url(/assets/etelkalight-webfont-1ed38dbac6b817bf74bd46a98d61005aa2615db7ac743e4037364d1021084043.woff) format("woff"),url(/assets/etelkalight-webfont-f68a2db6346d864f82c3b3e725ee60b0217e91e46ec47f96710f70f996b61af1.ttf) format("truetype"),url(/assets/etelkalight-webfont-2b575f6e4696d74957af27a7c7bb7976b7ca31d0ebe8ec25bb4c3494d5d16e24.svg#EtelkaLightProRegular) format("svg");font-weight:normal;font-style:normal}@font-face{font-family:"EtelkaLightProBold";src:url(/assets/etelkalightbold-webfont-1d94cabe6fb55b05f746fe0aa51a7a503683d7afdb68360ed26bfac03e1b3c39.eot);src:url(/assets/etelkalightbold-webfont-1d94cabe6fb55b05f746fe0aa51a7a503683d7afdb68360ed26bfac03e1b3c39.eot?#iefix) format("embedded-opentype"),url(/assets/etelkalightbold-webfont-d608c036b3e3f04ca87a1c494f8d9e9620a729b2760b5eb1dcee52c4bc8e8805.woff) format("woff"),url(/assets/etelkalightbold-webfont-0f06d1e7f099578e1cc0e9b1875aca2a7128c0ca0d640fd504e97bae0b028429.ttf) format("truetype"),url(/assets/etelkalightbold-webfont-bb0c8e17b99b10f211be3531a51d6ad48a5c6e4670c8fb6160a329fa4758c555.svg#EtelkaLightProBold) format("svg");font-weight:normal;font-style:normal}@font-face{font-family:"EtelkaLightProItalic";src:url(/assets/etelkalightitalic-webfont-ce5cdffe6c589a6dc6bd2c482c718486ff5fb416ab01740750db325179e58654.eot);src:url(/assets/etelkalightitalic-webfont-ce5cdffe6c589a6dc6bd2c482c718486ff5fb416ab01740750db325179e58654.eot?#iefix) format("embedded-opentype"),url(/assets/etelkalightitalic-webfont-d1fb9621d40ef45104078a4a5b98ce4cba00872cf8ac56e299cf1397c146cac3.woff) format("woff"),url(/assets/etelkalightitalic-webfont-54eb91ad0e0b639f50be02b7c25836c99ad989185f5d2a240d60ea14a1b7384a.ttf) format("truetype"),url(/assets/etelkalightitalic-webfont-dd5353c2af4ea63e1d0e99ec5f1f85162cee0c4dd0a3840260a2606eefc3e517.svg#EtelkaLightProItalic) format("svg");font-weight:normal;font-style:normal}@font-face{font-family:"InfoTextBold";src:url(/assets/infotexb-webfont-1951e43e1d9ab99b0d4998abba4aab34f3e68b337be90800db517e4a8d27d001.eot);src:url(/assets/infotexb-webfont-1951e43e1d9ab99b0d4998abba4aab34f3e68b337be90800db517e4a8d27d001.eot?#iefix) format("embedded-opentype"),url(/assets/infotexb-webfont-8da32e6db23c39390c55dd5ea8949714757fddba516c5db65e72867504493fbc.woff) format("woff"),url(/assets/infotexb-webfont-c0737d1e2edff50645e201bf99f68f2313502ee2bdeb2e56435ee24721baf5cd.ttf) format("truetype"),url(/assets/infotexb-webfont-0dda72e34d0d0ced7693b55ed08acc60fb1a9036afd7736e432ac3f22f2e6fdf.svg#InfoTextBold) format("svg");font-weight:normal;font-style:normal}@font-face{font-family:"InfoTextMedium";src:url(/assets/infotexm-webfont-74df99faeb66d8b02966b8884b860af03c359ed41d348ddb813dbcc3c460eb26.eot);src:url(/assets/infotexm-webfont-74df99faeb66d8b02966b8884b860af03c359ed41d348ddb813dbcc3c460eb26.eot?#iefix) format("embedded-opentype"),url(/assets/infotexm-webfont-872b5ab4e0b7de6655a52f137a3c99f1e7941fa91ff21a56550f2039834ee9d0.woff) format("woff"),url(/assets/infotexm-webfont-1d244d27a4ec4c1a5f98c82966faa26e7855c4292c730429477003b6dab5c08b.ttf) format("truetype"),url(/assets/infotexm-webfont-0b52ef10620b8cb7289dc809aac67826d5031e6ab040194fdb7365dc83e95557.svg#InfoTextMedium) format("svg");font-weight:normal;font-style:normal}@font-face{font-family:"InfoTextRegular";src:url(/fonts/infotexn-webfont.eot);src:url(/fonts/infotexn-webfont.eot?#iefix) format("embedded-opentype"),url(/fonts/infotexn-webfont.woff) format("woff"),url(/fonts/infotexn-webfont.ttf) format("truetype"),url(/fonts/infotexn-webfont.svg#InfoTextRegular) format("svg");font-weight:normal;font-style:normal}body>.container{min-height:800px}.error-tab>a{color:#a94442 !important}.edit-highlight{background-color:#E7E7E7}.navbar-brand{line-height:12px;padding-top:20px;padding-bottom:5px}.navbar-brand small{display:block;font-size:10px}.footer{color:#777;padding-top:15px;font-size:10px}.nowrap{white-space:nowrap}.form-signin{max-width:330px;padding:15px;margin:0 auto}.form-signin input{margin-bottom:10px}.form-signin .form-control{position:relative;height:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:10px;font-size:16px}.no-border{border:0px !important}.errors{color:#A94442}.typeahead{margin-left:5px}@media (min-width: 768px) and (max-width: 991px){.control-label{text-align:left !important}}.text-grey{color:grey}#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:100;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0px;width:100px;height:100%;box-shadow:0 0 10px #29d, 0 0 5px #29d;opacity:1.0;-webkit-transform:rotate(3deg) translate(0px, -4px);-ms-transform:rotate(3deg) translate(0px, -4px);transform:rotate(3deg) translate(0px, -4px)}#nprogress .spinner{display:block;position:fixed;z-index:100;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner 400ms linear infinite;animation:nprogress-spinner 400ms linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .spinner,.nprogress-custom-parent #nprogress .bar{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}#nprogress .bar,#nprogress .spinner{z-index:999999}.twitter-typeahead{width:100%;position:relative}.tt-dropdown-menu{width:100%;min-width:160px;margin-top:2px;padding:5px 0;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.tt-suggestion{display:block;padding:3px 20px}.twitter-typeahead .tt-suggestion.tt-cursor{color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0)}.tt-suggestion.tt-cursor a{color:#fff}.tt-suggestion p{margin:0}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;-webkit-box-shadow:inset 0 0 12px 4px #ffffff;box-shadow:inset 0 0 12px 4px #ffffff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:'!';visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{-webkit-box-shadow:0 2px 5px rgba(0,0,0,0.2);box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown-header{position:relative;padding:5px 8px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.selectize-dropdown-header-close{position:absolute;right:8px;top:50%;color:#303030;opacity:0.4;margin-top:-12px;line-height:20px;font-size:20px !important}.selectize-dropdown-header-close:hover{color:#000000}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button [data-value]{position:relative;padding-right:24px !important}.selectize-control.plugin-remove_button [data-value] .remove{z-index:1;position:absolute;top:0;right:0;bottom:0;width:17px;text-align:center;font-weight:bold;font-size:12px;color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:2px 0 0 0;border-left:1px solid #d0d0d0;-webkit-border-radius:0 2px 2px 0;-moz-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-control.plugin-remove_button [data-value] .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button [data-value].active .remove{border-left-color:#cacaca}.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover{background:none}.selectize-control.plugin-remove_button .disabled [data-value] .remove{border-left-color:#ffffff}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#303030;font-family:inherit;font-size:13px;line-height:18px;-webkit-font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#ffffff;cursor:text;display:inline-block}.selectize-input{border:1px solid #d0d0d0;padding:8px 8px;display:inline-block;width:100%;overflow:hidden;position:relative;z-index:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.1);box-shadow:inset 0 1px 1px rgba(0,0,0,0.1);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.selectize-control.multi .selectize-input.has-items{padding:6px 8px 3px}.selectize-input.full{background-color:#ffffff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default !important}.selectize-input.focus{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.selectize-input>*{vertical-align:baseline;display:-moz-inline-stack;display:inline-block;zoom:1;*display:inline}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:2px 6px;background:#f2f2f2;color:#303030;border:0 solid #d0d0d0}.selectize-control.multi .selectize-input>div.active{background:#e8e8e8;color:#303030;border:0 solid #cacaca}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:#7d7d7d;background:#ffffff;border:0 solid #ffffff}.selectize-input>input{display:inline-block !important;padding:0 !important;min-height:0 !important;max-height:none !important;max-width:100% !important;margin:0 2px 0 0 !important;text-indent:0 !important;border:0 none !important;background:none !important;line-height:inherit !important;-webkit-user-select:auto !important;-webkit-box-shadow:none !important;box-shadow:none !important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none !important}.selectize-input::after{content:' ';display:block;clear:left}.selectize-input.dropdown-active::before{content:' ';display:block;position:absolute;background:#f0f0f0;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;z-index:10;border:1px solid #d0d0d0;background:#ffffff;margin:-1px 0 0 0;border-top:0 none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1);-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(125,168,208,0.2);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.selectize-dropdown [data-selectable],.selectize-dropdown .optgroup-header{padding:5px 8px}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#303030;background:#ffffff;cursor:default}.selectize-dropdown .active{background-color:#f5fafd;color:#495c68}.selectize-dropdown .active.create{color:#495c68}.selectize-dropdown .create{color:rgba(48,48,48,0.5)}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input{cursor:text}.selectize-control.single .selectize-input:after{content:' ';display:block;position:absolute;top:50%;right:15px;margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#808080 transparent transparent transparent}.selectize-control.single .selectize-input.dropdown-active:after{margin-top:-4px;border-width:0 5px 5px 5px;border-color:transparent transparent #808080 transparent}.selectize-control.rtl.single .selectize-input:after{left:15px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px !important}.selectize-control .selectize-input.disabled{opacity:0.5;background-color:#fafafa}.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible !important;background:#f2f2f2 !important;background:rgba(0,0,0,0.06) !important;border:0 none !important;-webkit-box-shadow:inset 0 0 12px 4px #ffffff;box-shadow:inset 0 0 12px 4px #ffffff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:'!';visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{-webkit-box-shadow:0 2px 5px rgba(0,0,0,0.2);box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown-header{position:relative;padding:3px 12px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-dropdown-header-close{position:absolute;right:12px;top:50%;color:#333333;opacity:0.4;margin-top:-12px;line-height:20px;font-size:20px !important}.selectize-dropdown-header-close:hover{color:#000000}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button [data-value]{position:relative;padding-right:24px !important}.selectize-control.plugin-remove_button [data-value] .remove{z-index:1;position:absolute;top:0;right:0;bottom:0;width:17px;text-align:center;font-weight:bold;font-size:12px;color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 0 0 0;border-left:1px solid transparent;-webkit-border-radius:0 2px 2px 0;-moz-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-control.plugin-remove_button [data-value] .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button [data-value].active .remove{border-left-color:transparent}.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover{background:none}.selectize-control.plugin-remove_button .disabled [data-value] .remove{border-left-color:rgba(77,77,77,0)}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#333333;font-family:inherit;font-size:inherit;line-height:20px;-webkit-font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#ffffff;cursor:text;display:inline-block}.selectize-input{border:1px solid #cccccc;padding:6px 12px;display:inline-block;width:100%;overflow:hidden;position:relative;z-index:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-control.multi .selectize-input.has-items{padding:5px 12px 2px}.selectize-input.full{background-color:#ffffff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default !important}.selectize-input.focus{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.selectize-input>*{vertical-align:baseline;display:-moz-inline-stack;display:inline-block;zoom:1;*display:inline}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 3px;background:#efefef;color:#333333;border:0 solid transparent}.selectize-control.multi .selectize-input>div.active{background:#428bca;color:#ffffff;border:0 solid transparent}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:#808080;background:#ffffff;border:0 solid rgba(77,77,77,0)}.selectize-input>input{display:inline-block !important;padding:0 !important;min-height:0 !important;max-height:none !important;max-width:100% !important;margin:0 !important;text-indent:0 !important;border:0 none !important;background:none !important;line-height:inherit !important;-webkit-user-select:auto !important;-webkit-box-shadow:none !important;box-shadow:none !important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:none !important}.selectize-input::after{content:' ';display:block;clear:left}.selectize-input.dropdown-active::before{content:' ';display:block;position:absolute;background:#ffffff;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;z-index:10;border:1px solid #d0d0d0;background:#ffffff;margin:-1px 0 0 0;border-top:0 none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1);-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(255,237,40,0.4);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.selectize-dropdown [data-selectable],.selectize-dropdown .optgroup-header{padding:3px 12px}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#777777;background:#ffffff;cursor:default}.selectize-dropdown .active{background-color:#f5f5f5;color:#262626}.selectize-dropdown .active.create{color:#262626}.selectize-dropdown .create{color:rgba(51,51,51,0.5)}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input{cursor:text}.selectize-control.single .selectize-input:after{content:' ';display:block;position:absolute;top:50%;right:17px;margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#333333 transparent transparent transparent}.selectize-control.single .selectize-input.dropdown-active:after{margin-top:-4px;border-width:0 5px 5px 5px;border-color:transparent transparent #333333 transparent}.selectize-control.rtl.single .selectize-input:after{left:17px;right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px !important}.selectize-control .selectize-input.disabled{opacity:0.5;background-color:#ffffff}.selectize-dropdown,.selectize-dropdown.form-control{height:auto;padding:0;margin:2px 0 0 0;z-index:1000;background:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175)}.selectize-dropdown .optgroup-header{font-size:12px;line-height:1.42857143}.selectize-dropdown .optgroup:first-child:before{display:none}.selectize-dropdown .optgroup:before{content:' ';display:block;height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5;margin-left:-12px;margin-right:-12px}.selectize-dropdown-content{padding:5px 0}.selectize-dropdown-header{padding:6px 12px}.selectize-input{min-height:34px}.selectize-input.dropdown-active{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.selectize-input.dropdown-active::before{display:none}.selectize-input.focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.has-error .selectize-input{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .selectize-input:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.selectize-control.multi .selectize-input.has-items{padding-left:9px;padding-right:9px}.selectize-control.multi .selectize-input>div{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.form-control.selectize-control{padding:0;height:auto;border:none;background:none;-webkit-box-shadow:none;box-shadow:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}html{font-size:100%;overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body>.container{background:#fff;padding:16px 30px 30px 30px;margin-top:0px;border-radius:3px;min-height:600px}h1{font-size:26px;margin-bottom:16px}a{color:#23527C;text-decoration:none}a:hover,a:active{color:#23527C;outline:0}h1,h2,h3,h4,h1 a,h2 a,h3 a,h4 a{color:#272f34;text-decoration:none;font-weight:normal;font-family:"EtelkaLightProBold"}body,button,input,select,textarea{font-family:"EtelkaLightProRegular", Arial, Helvetica, sans-serif;color:#5d6064;font-size:13px}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:normal;font-family:"EtelkaLightProBold"}blockquote{margin:1em 40px}dfn{font-style:italic}mark{background:#ff0;color:#000}pre,code,kbd,samp{font-family:monospace, serif;_font-family:"courier new", monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:"";content:none}small{font-size:75%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}.title-row{margin-bottom:22px}.app-nav{padding-top:7px}.general-tab{padding-top:30px;padding-right:20px;border-top:0px}.container.version{background:transparent;margin-top:-116px;min-height:0px;text-align:right;font-size:12px;color:gray}.container.subnav{background:transparent;min-height:0;padding:0 46px 0 0;margin-bottom:0}.container.subnav ul.nav li a{background:#E7E7E7;height:33px;line-height:12px;color:gray}.container.subnav ul.nav li a:hover{color:#333}.container.subnav ul.nav li.active a{background:#F8F8F8;font-weight:bold;color:#333}.subactions{min-height:600px}.subactions h4{margin-bottom:20px;margin-top:10px}.sidebar{min-height:400px}.content{margin-right:240px;margin-left:0}h4{margin:0}.top-actions{margin-top:12px;margin-bottom:16px;float:right}.domify td{vertical-align:middle !important}body.login{padding-top:40px;padding-bottom:40px}body.login .checkbox{margin-bottom:10px}body.login .form-signin{max-width:330px;padding:15px;margin:0 auto}body.login .form-signin input[type="text"]{margin-bottom:8px}body.login .form-signin input[type="password"]{margin-bottom:10px}body.login .form-signin .btn-lg{margin-top:28px}body.login .form-signin .checkbox{font-weight:normal}body.login .form-signin .form-control{position:relative;height:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:10px;font-size:16px}body.login .form-signin .form-control:focus{z-index:2}.error-tab>a{color:#a94442 !important}.edit-highlight{background-color:#E7E7E7}.navbar-brand{line-height:12px;padding-top:20px;padding-bottom:5px}.navbar-brand small{display:block;font-size:10px}.navbar{margin-bottom:0}.footer{color:#777;padding-top:15px;font-size:10px}.nowrap{white-space:nowrap}.form-signin{max-width:330px;padding:15px;margin:0 auto}.form-signin input{margin-bottom:10px}.form-signin .form-control{position:relative;height:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:10px;font-size:16px}.form-signin{max-width:330px;padding:15px;margin:0 auto}.form-signin input{margin-bottom:10px}@media (min-width: 860px){.control-label{text-align:right;margin-bottom:0;padding-top:7px}} diff --git a/public/assets/admin-manifest-5f612f59c9effcca0be5396c4f00654de236d2bb1b16bbdf929b47e6504381f3.js b/public/assets/admin-manifest-5f612f59c9effcca0be5396c4f00654de236d2bb1b16bbdf929b47e6504381f3.js new file mode 100644 index 000000000..b2e3af1cf --- /dev/null +++ b/public/assets/admin-manifest-5f612f59c9effcca0be5396c4f00654de236d2bb1b16bbdf929b47e6504381f3.js @@ -0,0 +1,201 @@ +/*! + * jQuery JavaScript Library v1.11.2 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2014-12-17T15:27Z + */ +!function(t,e){"object"==typeof module&&"object"==typeof module.exports?module.exports=t.document?e(t,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return e(t)}:e(t)}("undefined"!=typeof window?window:this,function(t,e){function n(t){var e=t.length,n=re.type(t);return"function"===n||re.isWindow(t)?!1:1===t.nodeType&&e?!0:"array"===n||0===e||"number"==typeof e&&e>0&&e-1 in t}function i(t,e,n){if(re.isFunction(e))return re.grep(t,function(t,i){return!!e.call(t,i,t)!==n});if(e.nodeType)return re.grep(t,function(t){return t===e!==n});if("string"==typeof e){if(he.test(e))return re.filter(e,t,n);e=re.filter(e,t)}return re.grep(t,function(t){return re.inArray(t,e)>=0!==n})}function r(t,e){do t=t[e];while(t&&1!==t.nodeType);return t}function o(t){var e=we[t]={};return re.each(t.match(be)||[],function(t,n){e[n]=!0}),e}function a(){fe.addEventListener?(fe.removeEventListener("DOMContentLoaded",s,!1),t.removeEventListener("load",s,!1)):(fe.detachEvent("onreadystatechange",s),t.detachEvent("onload",s))}function s(){(fe.addEventListener||"load"===event.type||"complete"===fe.readyState)&&(a(),re.ready())}function l(t,e,n){if(void 0===n&&1===t.nodeType){var i="data-"+e.replace(De,"-$1").toLowerCase();if(n=t.getAttribute(i),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:_e.test(n)?re.parseJSON(n):n}catch(r){}re.data(t,e,n)}else n=void 0}return n}function u(t){var e;for(e in t)if(("data"!==e||!re.isEmptyObject(t[e]))&&"toJSON"!==e)return!1;return!0}function c(t,e,n,i){if(re.acceptData(t)){var r,o,a=re.expando,s=t.nodeType,l=s?re.cache:t,u=s?t[a]:t[a]&&a;if(u&&l[u]&&(i||l[u].data)||void 0!==n||"string"!=typeof e)return u||(u=s?t[a]=V.pop()||re.guid++:a),l[u]||(l[u]=s?{}:{toJSON:re.noop}),("object"==typeof e||"function"==typeof e)&&(i?l[u]=re.extend(l[u],e):l[u].data=re.extend(l[u].data,e)),o=l[u],i||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[re.camelCase(e)]=n),"string"==typeof e?(r=o[e],null==r&&(r=o[re.camelCase(e)])):r=o,r}}function d(t,e,n){if(re.acceptData(t)){var i,r,o=t.nodeType,a=o?re.cache:t,s=o?t[re.expando]:re.expando;if(a[s]){if(e&&(i=n?a[s]:a[s].data)){re.isArray(e)?e=e.concat(re.map(e,re.camelCase)):e in i?e=[e]:(e=re.camelCase(e),e=e in i?[e]:e.split(" ")),r=e.length;for(;r--;)delete i[e[r]];if(n?!u(i):!re.isEmptyObject(i))return}(n||(delete a[s].data,u(a[s])))&&(o?re.cleanData([t],!0):ne.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}function h(){return!0}function p(){return!1}function f(){try{return fe.activeElement}catch(t){}}function g(t){var e=Le.split("|"),n=t.createDocumentFragment();if(n.createElement)for(;e.length;)n.createElement(e.pop());return n}function m(t,e){var n,i,r=0,o=typeof t.getElementsByTagName!==Ce?t.getElementsByTagName(e||"*"):typeof t.querySelectorAll!==Ce?t.querySelectorAll(e||"*"):void 0;if(!o)for(o=[],n=t.childNodes||t;null!=(i=n[r]);r++)!e||re.nodeName(i,e)?o.push(i):re.merge(o,m(i,e));return void 0===e||e&&re.nodeName(t,e)?re.merge([t],o):o}function v(t){Ee.test(t.type)&&(t.defaultChecked=t.checked)}function y(t,e){return re.nodeName(t,"table")&&re.nodeName(11!==e.nodeType?e:e.firstChild,"tr")?t.getElementsByTagName("tbody")[0]||t.appendChild(t.ownerDocument.createElement("tbody")):t}function b(t){return t.type=(null!==re.find.attr(t,"type"))+"/"+t.type,t}function w(t){var e=Ye.exec(t.type);return e?t.type=e[1]:t.removeAttribute("type"),t}function x(t,e){for(var n,i=0;null!=(n=t[i]);i++)re._data(n,"globalEval",!e||re._data(e[i],"globalEval"))}function k(t,e){if(1===e.nodeType&&re.hasData(t)){var n,i,r,o=re._data(t),a=re._data(e,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(i=0,r=s[n].length;r>i;i++)re.event.add(e,n,s[n][i])}a.data&&(a.data=re.extend({},a.data))}}function C(t,e){var n,i,r;if(1===e.nodeType){if(n=e.nodeName.toLowerCase(),!ne.noCloneEvent&&e[re.expando]){r=re._data(e);for(i in r.events)re.removeEvent(e,i,r.handle);e.removeAttribute(re.expando)}"script"===n&&e.text!==t.text?(b(e).text=t.text,w(e)):"object"===n?(e.parentNode&&(e.outerHTML=t.outerHTML),ne.html5Clone&&t.innerHTML&&!re.trim(e.innerHTML)&&(e.innerHTML=t.innerHTML)):"input"===n&&Ee.test(t.type)?(e.defaultChecked=e.checked=t.checked,e.value!==t.value&&(e.value=t.value)):"option"===n?e.defaultSelected=e.selected=t.defaultSelected:("input"===n||"textarea"===n)&&(e.defaultValue=t.defaultValue)}}function _(e,n){var i,r=re(n.createElement(e)).appendTo(n.body),o=t.getDefaultComputedStyle&&(i=t.getDefaultComputedStyle(r[0]))?i.display:re.css(r[0],"display");return r.detach(),o}function D(t){var e=fe,n=Je[t];return n||(n=_(t,e),"none"!==n&&n||(Ge=(Ge||re("